2014-12-31 2 views
1

Я не могу найти ошибку, которую я потратил много времени, пытаясь исправить эту ошибку, но я не могу найти ошибку.Пакет: Синтаксис команды неверен?

Пакетный файл продолжает давать мне Синтаксис команды неверен, когда я запускаю следующие коды.

Что в этом плохого?

Код:

@echo off 

whoami /groups | find "S-1-16-12288" > nul 

if %errorlevel% == 0 (
goto :Runing in Admin Mode 
) ELSE (
goto :Not Runing in Admin Mode 
) 

if %errorlevel% == 2 (
goto :Not Runing in Admin Mode 
) ELSE (
goto :Runing in Admin Mode 
) 

SET AND=IF 
SET THEN=(
SET ELSE=) ELSE (
SET NOELSE= 
SET ENDIF=) 
SET BEGIN=(
SET END=) 
SET RETURN=EXIT /B 

:Runing in Admin Mode 
if %errorlevel% == 0 (
echo Runing in Admin Mode 
echo. 
attrib -h FileCompressionTool.bat 

IF EXIST "upx.exe" %THEN% 
attrib -h upx.exe 
set missingfilesFalse=False 
%ELSE% 
echo upx.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST "mpress.exe" %THEN% 
attrib -h mpress.exe 
set missingfilesFalse=False 
%ELSE% 
echo mpress.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 
%THEN% 

IF EXIST strip.exe %THEN% 
attrib -h strip.exe 
%ELSE% 
echo strip.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.exe %THEN% 
attrib -h reshacker.exe 
%ELSE% 
echo reshacker.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.ini %THEN% 
attrib -h reshacker.ini 
%ELSE% 
echo reshacker.ini. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.Log %THEN% 
attrib -h reshacker.Log 
%ELSE% 
echo reshacker.Log. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 

cls 

:Not Runing in Admin Mode 
if %errorlevel% == 2 (
echo Not Runing in Admin Mode 
echo. 

attrib -h FileCompressionTool.bat 

IF EXIST "upx.exe" %THEN% 
attrib -h upx.exe 
set missingfilesFalse=False 
%ELSE% 
echo upx.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST "mpress.exe" %THEN% 
attrib -h mpress.exe 
set missingfilesFalse=False 
%ELSE% 
echo mpress.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 
%THEN% 

IF EXIST strip.exe %THEN% 
attrib -h strip.exe 
%ELSE% 
echo strip.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.exe %THEN% 
attrib -h reshacker.exe 
%ELSE% 
echo reshacker.exe. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.ini %THEN% 
attrib -h reshacker.ini 
%ELSE% 
echo reshacker.ini. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

IF EXIST reshacker.Log %THEN% 
attrib -h reshacker.Log 
%ELSE% 
echo reshacker.Log. missing. 
set missingfilesTrue=True 
ping >nul 3 %THEN% 

%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 
%NOELSE% 
%ENDIF% 

cls 

IF EXIST "%~1" %THEN% 
SET "result=%~1" 
%ELSE% 
SET "result=" 
%ENDIF% 

set False= Pause 

set True=echo Some file are missing this program may not work correctly please Re-download           **File Compression Tool** 


echo 1 UPX Compression 
echo 2 Mpress Compression 
echo 3 Decompress a file 
echo 4 Remove VB6 default icon 
echo Type exit to exit 
echo. 
if "%missingfilesTrue%"=="True" %true% 

Set /p choice= 
If %choice%==1 goto :1 
If %choice%==2 goto :2 
If %choice%==3 goto :3 
If %choice%==4 goto :4 
If %choice%==exit goto :exit 

if %missingfilesTrue%==True(
%true% 
) else (
if %missingfilesFalse%==False 
%False% 
) 

goto :exit 

:1 
cls 
echo ***Drag your exe file into this window and press enter*** 
set /p File=: 
echo. 
copy %file% %file%.bak 
upx --best %file% 
echo. 
echo Done! 
echo Press any key to exit. . . 
pause >nul 
goto exit 

:2 
cls 
echo ***Drag your exe file into this window and press enter*** 
set /p file=: 
echo. 
copy %file% %file%.bak 
Mpress -s %file% 
echo. 
echo Done! 
echo Press any key to exit. . . 
pause >nul 
goto exit 

:3 
cls 
echo ***Drag your exe file into this window and press enter*** 
set /p file=: 
echo. 
copy %file% %file%.bak 
upx -d %file% 
echo. 
echo Done! 
echo Press any key to exit. . . 
pause >nul 
goto exit 

:4 
cls 
echo ***Drag your exe file into this window and press enter*** 
set /p thefile=: 

(
reshacker -delete %thefile%, %thefile%, ICONGROUP, 1, 0 
) 

strip -s --strip-all -g -S -d --strip-debug -x --discard-all -X --discard-locals %thefile% 
upx -9 %thefile% 
echo. 
echo Done! 
echo Press any key to exit. . . 
pause >nul 
goto exit 

:exit 
Exit 
+0

Не думаю, что в названиях ярлыков могут быть пробелы. Кроме того, '% THEN%' не выглядит правильным; который будет ссылаться на переменную с именем THEN. (Я не знаю синтаксиса пакета Windows достаточно хорошо, чтобы комментировать дальше.) –

+0

удалите строку с @echo off. вы можете узнать, где это происходит Неправильно –

+0

Я не думал, что я попробую это спасибо. –

ответ

1
if %errorlevel% == 0 (
goto :Runing in Admin Mode 
) ELSE (
goto :Not Runing in Admin Mode 
) 

Будет goto этикетку :Runing если errorlevel является 0 и этикетки :Not в противном случае (и поскольку not пакетный ключевое слово, это ужасно, но не является незаконным имя для метка)

Поскольку переменные «Then» и т. д. в этой точке не были установлены, они будут заменены их текущие значения (т.е. ничего) и - ну, в такой плите кода я не буду беспокоиться о том, чтобы выработать результат. Следуйте комментарию о @echo off, и будет показана синтаксическая ошибка построенной команды.

Смежные вопросы