2014-01-17 44 views
1

我想創建一個Windows批處理文件,該文件以特定模式(例如test * .zip)取文件名並將其分配給變量。以便我可以檢查/驗證文件是否存在於其他位置。如何獲取文件夾中特定文件的名稱並使用批處理腳本分配給變量

如何做到這一點?

我在下面的代碼嘗試..其執行預期,但其執行兩次。

@echo on 

call :sub "D:\temp\test*.zip" 

if exist "D:\temp\Updates\%filename%" (set flag="true") else (set flag="false") 

echo %flag% 

:sub 
set filename=%~nx1 
GOTO :EOF 
+0

將'goto:EOF'放在':sub'上面的行上,但它不會執行兩次。你在控制檯上看到什麼? – foxidrive

+0

感謝您的建議。 – user3205316

回答

1

與許多語言不同,batch沒有「過程」結尾的概念 - 它只是一行一行地繼續執行,直到到達文件結尾。因此,在完成主線路之後,您需要goto :eof,否則執行將通過子程序代碼繼續。 :EOF是由CMD理解爲意指end of file的預定義標籤。冒號爲需要

相關問題