
我正在嘗試編寫腳本並將其添加到右鍵單擊上下文功能表中。要將項目新增到選單中,我使用了以下命令: Windows:如何將批次腳本操作新增至右鍵選單,除了代替
HKEY_CLASSES_ROOT\Directory\shell\MyScript1
我用過
HKEY_CLASSES_ROOT\*\shell\MyScript1
因此它們會出現在所有文件中,無論擴展名如何。
現在,在實際的 bat 文件中,我需要一種方法來知道右鍵單擊了哪個文件,以便我可以將其用作輸入。有沒有辦法將文件的完整路徑放入變數中以供以後使用?
答案1
如果傳遞給批次腳本的參數是文件,則可以使用環境變數來取得路徑、檔案名稱、檔案副檔名等資訊。
@echo off
::
::If no parameter is passed, exit.
::
if [%~1]==[] echo Missing parameter! Script will exit... && exit /b
::
::If file does not exist, exit.
::
if not exist "%~1" echo File does not exist. Are you sure "%~1" is a file? && exit /b
echo.
echo File info
echo ---------
echo Path: %~dp1
echo Name: %~n1
echo Extension: %~x1
echo.
pause
exit /b
無論您將文件拖曳到腳本中還是從命令列將其作為參數傳遞,這都有效。你可以了解有關參數及其擴展語法的更多信息在 SS64.com。