首页 > 解决方案 > 在 cmd 中使用时传递给 cmd 的注册表变量 (%1) 不显示完整路径(不包含带空格的文本)

问题描述

在注册表项中,我将 %1 传递给 lockfolder.bat:

D:\文件夹\lockfolder.bat %1

这将运行带有 %1 参数的批处理文件

但是当我在上面的 cmd 文件中使用 %1 时,该文件包含:

cmd /c 回显 %1

如果 %1 是带有空格的路径,例如“d:\hello world”,则 cmd 只接受 d:\hello 但对于没有空格的“d:\games”可以正常工作

标签: cmdregistry

解决方案


始终为路径和文件名使用引号。TILDE 会删除可能存在的引号,如果不存在则不会造成任何损害。

D:\folder\lockfolder.bat "%~1"

cmd /c echo "%~1"

推荐阅读