Windows:与批处理文件建立文件关联

标签 windows batch-file file-association

我创建了一个自定义文件扩展名,我将关联到一个批处理脚本。 我用过

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/

相关文章:

c# - 比较两列并在相同时增加计数

batch-file - 在批处理文件中执行WinSCP命令

windows - 将文件类型/扩展名与 Inno Setup 中的 .exe 文件中的非主要图标相关联

java - 是否可以将 Java 应用程序设置为默认文件打开器?

python - Tkinter:鼠标拖动一个没有边框的窗口,例如。覆盖直接(1)

c++ - 获取路径并附加文件名

python - 如何使用 msilib 从 python 模块创建 .msi 文件的示例

windows - 如何让 Windows CMD ECHO 准确地回显一个字符?

batch-file - 批处理文件如何在目录的全部内容上运行?

java - 将文件类型与 Java Swing 应用程序相关联