反正有這樣做嗎?如何將參數傳遞給批處理文件中的變量?
@echo off ECHO WHAT do you want to do? ECHO 1.MOVE ECHO 2.COPY set "Act=" IF %Act% EQU 1 SET process=MOVE ELSE SET process=COPY %process% testfile.txt New pause
反正有這樣做嗎?如何將參數傳遞給批處理文件中的變量?
@echo off ECHO WHAT do you want to do? ECHO 1.MOVE ECHO 2.COPY set "Act=" IF %Act% EQU 1 SET process=MOVE ELSE SET process=COPY %process% testfile.txt New pause
@echo off
SETLOCAL
ECHO WHAT do you want to do?
ECHO 1.MOVE
ECHO 2.COPY
set /p "Act="
IF "%Act%" EQU "1" (SET "process=MOVE") ELSE (SET "process=COPY")
%process% testfile.txt New
pause
的setlocal
可確保當進程結束(如設置act
和process
在節目製作環境的變化被丟棄,因此對環境不會受到污染與陳舊的數據。
/p
選項到set
意味着accept input
隱式地來自鍵盤,但如果重定向也可能來自文件。
Th使用if
中的引號可確保比較運算符的每一側都非空,並且如果它包含分隔符(如空格),則將其解釋爲單個字符串。
要求if
中的圓括號(至少關於if-true部分),以便else
不被視爲if-true部分中潛在可執行文件的參數。
明文set
語句中的引號確保尾部空格不包含在賦值中(可能實際上並非實際需要,但是習慣於這樣做是個好主意......您只需要被捕獲一次浪費數小時追逐流浪空間......)
是的,只要你糾正了一些小錯別字,該代碼就可以工作;你有什麼問題? – SomethingDark
實際上沒有錯別字。語法正確 – Debendra
如果語法是正確的,你不會在這裏問這個問題:) – SomethingDark