簡體   English   中英

在subst命令中刪除Trailing \\

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM