[英]Remove Trailing \ in subst Command
我已經通過HKCR \\ Drive \\ shell \\ MapLocalDriveHere \\命令中的注冊表向我的上下文菜單添加了一個命令,這樣當我右鍵單擊一個驅動器時。 我希望它能給我一個右鍵單擊的驅動器名稱“C:”而不是“C:\\”,因為這會導致我正在嘗試運行的命令出現問題。
cmd /c subst %1 /D
這擴展到:
cmd /c subst C:\ /D
並且命令失敗(它期望subst C: /D
)。 如何在沒有尾隨\\的情況下獲取參數,或者將其刪除? %~d1
和%~1
不從注冊表項擴展,鍵入REG_EXPAND_SZ。
您可以通過查看位於https://github.com/Ehryk/ContextMenuTools的項目來源(尤其是此文件: https : //github.com/Ehryk/ContextMenuTools/blob)更好地了解我正在嘗試做的事情。 /master/Custom%20Installs/Map%20Local%20Drive%20Here/MapLocalDriveHere.inf )
你進入一個帶有%%~d
參數的for /f
循環帶冒號的驅動器號:
FOR /f "delims=" %%a IN ("%~1") DO cmd /c subst %%~da /D
好吧......讓我們結合驗證碼和npocmaka的答案的最佳功能。 不需要中間變量,也不需要FOR語句:
cmd /c subst %~d1 /D
set "param=%~1"
set "param=%param:~0,-1%"
cmd /c subst %param% /D
出於某種原因,我不得不切換到%V
而不是%1
來在注冊表中解決此問題:
cmd /c mapdrive.bat ""%V"" /D
HKCR,Drive\Shell\MapLocalDriveHere\command,,0x00020000,"cmd /c mapdrive.bat ""%V"" /D"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.