我创建了一个自定义文件扩展名,我将关联到一个批处理脚本。 我用过
ASSOC .myext=MY.FILETYPE
FTYPE MY.FILETYPE=cmd /c "C:\Path\of\my\batch.bat" %1 %*
现在批处理文件“C:\Path\of\my\batch.bat”是一个简单的单行文件
echo %1
粗略地工作:双击一个 .myext 文件弹出一个 cmd shell 回显文件路径。
但是当 .myext 文件位于包含空格的路径中时会出现问题:回显文件路径被截断为空格。
在 FTYPE 语句中双引号 %1 似乎不起作用。
FTYPE MY.FILETYPE=cmd /c "C:\Path\of\my\batch.bat" "%1" %*
最佳答案
双引号 %1
是正确的,但它失败了,因为 cmd.exe 在命令和至少一个参数包含引号时包含错误。
因此,您需要通过插入 CALL
使命令不带引号。
FTYPE MY.FILETYPE=cmd /c call "C:\Path\of\my\batch.bat" "%1" %*
关于Windows:与批处理文件建立文件关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189137/