2015-01-28 3 views
0

Я, наконец, изолировал свою проблему. Теперь у меня есть правильные аргументы для %verion% и %ModName%, он работает раньше в пакетном файле. Кроме того, точный формат этого оператора if успешно использовался ранее в том же командном файле (о чем я не уверен). Поместив заявления, которые говорят if "file2exist"=="true" echo true, я также знаю, что он действительно имеет значение "true". Теперь я помещаю код из последнего предложения между строками 4 и 5, и компьютер выполнил эхо. Это означает, что строка 4 каким-то образом игнорируется? (Линии 1-3 и 10-11 работы, строки 6-8, кажется, полностью пропущены)Правильный пакетный оператор if-goto?

Что пошло не так?

Благодарю вас заранее. Любые советы высоко ценится.

mkdir "0_%ModName%_Mod(%Version%)\" mkdir "0_%ModName%_Mod(%Version%)\File1\" echo.>"0_%ModName%_Mod(%Version%)\File1\Place_File_1_Here.txt" if "file2exist"=="true" goto filetwostore goto startbatting :filetwostore mkdir 0_%ModName%_Mod(%Version%)\File2\ echo.>"0_%ModName%_Mod(%Version%)\File2\Place_File_2_Here.txt" :startbatting echo Writing Batch File... echo.>"Install-Uninstall.bat"

ответ

2
if "file2exist"=="true" goto filetwostore 

эквивалентно

if 1==2 goto filetwostore 

двух разных строк не могут быть равны, если, как было сказано, они отличаются

Может быть, вам нужно

if "%file2exist%"=="true" goto filetwostore 

, чтобы сравнить значение переменной, а не имя переменной

+0

О, мой, как неловко. Я не знаю, почему я этого не видел. Большое спасибо. – RandomKid11