2015-02-19 2 views
5

Я нашел этот код, но есть части, которые я не понимаю.Что делает% ~ 1 в этом пакетном файле?

Это мой код:

Main.bat:

@echo off 
set "CallCount=0" 
set "Mood=" 
set /P "Mood=Your mood is: " 
call Receive.bat "%Mood%" 
rem *Random stuff* 
set "Food=" 
set /P "Food=The food you want is: " 
call Receive.bat "%Food%" 
set "CallCount=" 

receive.bat:

@echo off 
set /A CallCount+=1   
if "CallCount"=="2" goto Call2 
if not "%~1"=="" echo %1  <---- 
*Random Stuff*     | 
goto :EOF      |---What is %~1 doing in this area? 
:Call2       | 
if not "%~1"=="" echo %1  <---- 
rem Commands for second call. 

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

ответ

12

%1 - это первый аргумент, формирующий вызывающую командную строку. Если переданный аргумент имеет котировки вокруг него, %1 содержит кавычки. Где as, %~1 предоставляет значение аргумента с удаленными кавычками.

Полезные ссылки here.

+0

Спасибо за разъяснение! Действительно помог. – Kit

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