2015-02-19 1 views
5

Ho trovato questo codice, ma ci sono parti che non capisco.Cosa fa% ~ 1 in questo file batch?

Questo è il mio codice:

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: Questo è un file che utilizza il comando di chiamata due volte.

risposta

12

%1 è il primo argomento della riga di comando che invoca. Se l'argomento passato ha virgolette, %1 include le virgolette. Dove, come %~1 fornisce il valore dell'argomento con le virgolette rimosse.

Riferimento utile here.

+0

Grazie per il chiarimento! Davvero aiutato. – Kit