我有一個批處理文件。什麼是命令/如何找到當前正在運行的批處理文件的名稱並將其存儲爲變量?如何查找當前批處理文件的名稱並將其存儲爲變量?
例如:
我批處理文件hello.bat
正在運行,如何可以存儲的名稱(hello.bat)作爲變量。
我有一個批處理文件。什麼是命令/如何找到當前正在運行的批處理文件的名稱並將其存儲爲變量?如何查找當前批處理文件的名稱並將其存儲爲變量?
例如:
我批處理文件hello.bat
正在運行,如何可以存儲的名稱(hello.bat)作爲變量。
set "myName=%~nx0"
在批處理文件,%0是對批處理文件本身的引用。 %~nx0
是批處理文件的名稱和擴展名。 for /?
幫助包括您可以從文件中引用獲得的可能值的完整列表,作爲完整路徑,文件大小,時間戳,....
編輯 - 正如評論指出,使用shift
命令(意在%9
將較高的參數移到較低的參數後獲得對批處理文件參數的訪問權)%0
的值會被%1
的內容覆蓋,從而無法讀取其原始參考。因此,選項有
發出shift
命令
如果擴展名被啓用,該shift
命令允許指定從哪裏開始偏移參數之前獲取的價值,所以,而不是發出shift
命令,使用shift /1
指示%1
會是怎樣的第一個參數覆蓋,保護%0
在一個子程序調用獲取批處理文件的名稱。
myBatchFile.cmd
@echo off
rem shifting arguments
shift
rem Get reference to current batch file
call :getMyName
echo %myName%
exit /b
:getMyName
set "myName=%~nx0"
exit /b
+1這可以起作用,除非'shift'命令已經發布。 – foxidrive
@foxidrive,我忘了任何選項? –
這有效。在使用shift之後用於獲取批處理文件名稱的方法是一種新穎的方法。工作很好。 – foxidrive