2015-02-19 15 views
5

Ich habe diesen Code gefunden, aber es gibt Teile, die ich nicht verstehe.Was macht% ~ 1 in dieser Batch-Datei?

Dies ist mein Code:

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: Dies ist eine Datei, die zweimal den Anruf Befehl verwendet.

Antwort

12

%1 ist das erste Argument der aufrufenden Befehlszeile. Wenn das übergebene Argument Anführungszeichen enthält, enthält %1 die Anführungszeichen. Where as liefert %~1 den Argumentwert mit entfernten Anführungszeichen.

Hilfreiche Referenz here.

+0

Danke für die Klarstellung! Wirklich geholfen. – Kit