2013-10-24 5 views
0

Я пытаюсь собрать пакетный файл, который копирует несколько файлов и запускает файл excel. Исходный пакетный файл, который у меня был, отлично работает, но я изменил его, чтобы попытаться определить, является ли операционная система 32-разрядной или 64-разрядной, и соответствующим образом ссылаться на соответствующую папку.Вложенный оператор IF в пакетном файле

шаги должны быть следующими:

  1. Определить, если операционная система имеет папку "Program Files (x86)". Если это так, то операционная система должна быть 64-битной. Если это не так, переходите к шагу 5.

  2. Если у него есть папка «Program Files (x86)», а затем посмотрите, есть ли файл «installed.txt» в папке «c: \ Program files» (x86) \ Auto-BF \ "

  3. Если файла нет, выполните следующие действия.

а) создать "Auto-BF" Папка в "% USERPROFILE% \ MarketFeeder Pro 7 \ Profiles \" б) скопировать 2 файла из "C: файлы \ Program (x86) \ Auto-BF" в эту недавно созданную папку «Auto-BF», используя пару команд xcopy: xcopy «c: \ Program Files (x86) \ Auto-BF \ settings.ini» «% userprofile% \ MarketFeeder Pro 7 \ profiles \ Auto -BF "/ h/q/r/y xcopy" c: \ Program Files (x86) \ Auto-BF \ customcells.xml ""% userprofile% \ MarketFeeder Pro 7 \ profiles \ Auto-BF "/ h/q/r/y c) Теперь создайте файл «installed.txt» и поместите его в папку «« C: \ Program Files (x86) \ Auto-BF », чтобы подтвердить, что папка создана и файлы были скопировано. d) теперь запустите exce l «abf.xlsx» из папки «C: \ Program Files (x86) \ Auto-BF», а затем выйдите из командного файла.

  1. Если уже есть файл "installed.txt" в "C: \ Program Files (x86) \ Auto-BF" папку, а затем просто запустить электронную таблицу первенствовать в той же папке "abf.xlsx"

(для 32-битных систем, когда "Program Files (x86)" не существует) 5. Проверьте, есть ли файл "installed.txt" в «C: \ Program Files \ Auto-BF \ "

  1. Если файла нет, выполните следующие действия.

а) создать "Auto-BF" Папку в "% USERPROFILE% \ MarketFeeder Pro 7 \ Profiles \" б) скопировать 2 файл из "C: файлы \ программа \ Auto-BF" в этом вновь созданный «Auto-BF», используя пару команд xcopy: xcopy «c: \ Program Files \ Auto-BF \ settings.ini» «% userprofile% \ MarketFeeder Pro 7 \ profiles \ Auto-BF"/h/q/r/y xcopy "c: \ Program Files \ Auto-BF \ customcells.xml" "% userprofile% \ MarketFeeder Pro 7 \ profiles \ Auto-BF"/h/q/r/y c) Теперь создайте «installed.txt» и поместите его в папку «C: \ Program Files \ Auto-BF», чтобы подтвердить, что папка была создана, и файлы были скопированы. d) теперь запустите таблицу Excel «abf. xlsx "из" C: \ Program Files \ Auto -BF ", а затем выйти из командного файла.

  1. Если уже есть файл "installed.txt" в "C: Files \ Program \ Auto-BF" папку, а затем просто запустить электронную таблицу первенствовать в той же папке «ABF.XLSX»

Хорошо, я надеюсь, что было относительно просто следовать! :-)

Это пакетный файл я уже создан, но что-то не совсем правильно работает ....


@echo off 
for /f "tokens=*" %%a in ('dir /b /s "%windir%\system32\xcopy.exe"') do set path=%path%;%%~dpa 

IF EXIST "c:\Program Files (x86)\" (

cd "c:\Program Files (x86)\Auto-BF\" 
IF EXIST "c:\Program Files (x86)\Auto-BF\installed.txt" START abf.xlsx 
IF EXIST "c:\Program Files (x86)\Auto-BF\installed.txt" EXIT 
) ELSE (

REM create Auto-BF Folder 
cd %userprofile%\MarketFeeder Pro 7\profiles\ 
md Auto-BF 

REM move files 
xcopy "c:\Program Files (x86)\Auto-BF\settings.ini" "%userprofile%\MarketFeeder Pro 7\profiles\Auto-BF" /h /q /r /y 
xcopy "c:\Program Files (x86)\Auto-BF\customcells.xml" "%userprofile%\MarketFeeder Pro 7\profiles\Auto-BF" /h /q /r /y 

cd c:\Program Files (x86)\Auto-BF\ 

ECHO Auto-BF successfully installed >installed.txt 

START abf.xlsx 
EXIT) 

IF EXIST "c:\Program Files (x86)\" (


cd "c:\Program Files\Auto-BF\" 
IF EXIST "c:\Program Files\Auto-BF\installed.txt" START abf.xlsx 
IF EXIST "c:\Program Files\Auto-BF\installed.txt" EXIT 
) ELSE (

REM create Auto-BF Folder 
cd %userprofile%\MarketFeeder Pro 7\profiles\ 
md Auto-BF 

REM move files 
xcopy "c:\Program Files\Auto-BF\settings.ini" "%userprofile%\MarketFeeder Pro 7\profiles\Auto-BF" /h /q /r /y 
xcopy "c:\Program Files\Auto-BF\customcells.xml" "%userprofile%\MarketFeeder Pro 7\profiles\Auto-BF" /h /q /r /y 

cd c:\Program Files\Auto-BF\ 

ECHO Auto-BF successfully installed >installed.txt 

START abf.xlsx 

EXIT) 
+0

, пожалуйста, проверьте свои '(' и ')'. Они не спарены, и логика выглядит довольно странно. – Stephan

+0

только что отредактировал (отредактировал выше), но все еще не работает ... не уверен, что я делаю неправильно –

+1

у вас есть один) ELSE ('to much. (Второй, я думаю) - это делает" IF - ELSE - ELSE ", что невозможно (в пакете). – Stephan

ответ

0

оба ваших IF -конструкты одинаковы:

IF EXIST "c:\Program Files (x86)\" (

Второй должен быть:

IF EXIST "c:\Program Files\" (
Смежные вопросы