Сценарий 1:
Input («Remove Quotes.cmd» «Это тест»)
@ECHO OFF
REM Set "string" variable to "first" command line parameter
SET STRING=%1
REM Remove Quotes [Only Remove Quotes if NOT Null]
IF DEFINED STRING SET STRING=%STRING:"=%
REM IF %1 [or String] is NULL GOTO MyLabel
IF NOT DEFINED STRING GOTO MyLabel
REM OR IF "." equals "." GOTO MyLabel
IF "%STRING%." == "." GOTO MyLabel
REM GOTO End of File
GOTO :EOF
:MyLabel
ECHO Welcome!
PAUSE
Вывод (нет,% 1 не был пустым, пустым или пустым):
Выполнить ("Удалить Quotes.cmd") без каких-либо параметров с помощью вышеуказанного скрипта 1
Вывод (% 1 пусто, пусто или NULL):
Welcome!
Press any key to continue . . .
Примечание. Если вы установите переменную в операторе IF ( ) ELSE ( )
, она не будет доступна для DEFINED до тех пор, пока она не выйдет из оператора «IF» (если только «Delayed Variable Expansion» не включено; после включения используйте восклицательный знак » ! "вместо символа процента"% "}.
Например:
Сценарий 2:
Input («Remove Quotes.cmd» «Это тест»)
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET STRING=%0
IF 1==1 (
SET STRING=%1
ECHO String in IF Statement='%STRING%'
ECHO String in IF Statement [delayed expansion]='!STRING!'
)
ECHO String out of IF Statement='%STRING%'
REM Remove Quotes [Only Remove Quotes if NOT Null]
IF DEFINED STRING SET STRING=%STRING:"=%
ECHO String without Quotes=%STRING%
REM IF %1 is NULL GOTO MyLabel
IF NOT DEFINED STRING GOTO MyLabel
REM GOTO End of File
GOTO :EOF
:MyLabel
ECHO Welcome!
ENDLOCAL
PAUSE
Вывод:
C:\Users\Test>"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd" "This is a Test"
String in IF Statement='"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd"'
String in IF Statement [delayed expansion]='"This is a Test"'
String out of IF Statement='"This is a Test"'
String without Quotes=This is a Test
C:\Users\Test>
Примечание: он также удалит кавычки из строки.
Например (используя скрипт 1 или 2):
C: \ Users \ Test \ Documents \ Batch Files> "Удалить Quotes.cmd" "Это" a "Тест"
Вывод (сценарий 2):
String in IF Statement='"C:\Users\Test\Documents\Batch Files\Remove Quotes.cmd"'
String in IF Statement [delayed expansion]='"This is "a" Test"'
String out of IF Statement='"This is "a" Test"'
String without Quotes=This is a Test
Выполнить («Удалить Quotes.cmd») без каких-либо параметров в сценарии 2:
Выход:
Welcome!
Press any key to continue . . .