在subst命令中删除Trailing \

Ehr*_*ryk 3 windows batch-file variable-expansion

我已经通过HKCR\Drive\shell\MapLocalDriveHere \命令中的注册表向我的上下文菜单添加了一个命令,这样当我右键单击一个驱动器时.我希望它能给我一个右键单击的驱动器名称"C:"而不是"C:\",因为这会导致我正在尝试运行的命令出现问题.

cmd /c subst %1 /D
Run Code Online (Sandbox Code Playgroud)

这扩展到:

cmd /c subst C:\ /D
Run Code Online (Sandbox Code Playgroud)

命令失败(它预期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)

cap*_*cha 5

你进入一个带有冒号的驱动器号参数的for /f循环%%~d:

FOR /f "delims=" %%a IN ("%~1") DO cmd /c subst %%~da /D
Run Code Online (Sandbox Code Playgroud)

  • 它甚至可以用普通来完成:`for %% d in("%〜1")do cmd/c subst %% ~da/D` (2认同)