【发布时间】:2015-02-17 22:48:44
【问题描述】:
我已将批处理文件设置为默认打开 .txt 文件。在较早的问题中,我发现 %1 给了我实际调用批处理文件的文件的路径。问题是:如果文件名包含空格,它会被解释为多个参数。
例子:
打开文件“C:\Users\Desktop\space true.txt”
%1 给出:“C:\Users\Desktop\space”,然后 %2 给出:“true.txt”
如何在不尝试执行循环以尝试通过组合 %1%2%3%4... 来获取完整路径的情况下仅获取包含名称和空格的完整文件路径...
更新-----------
很抱歉,有一个错过的通信。下面的代码正在运行。诀窍是用“%*”代替“%1”
这里是代码:
@echo on
set var= "%*"
c:
cd "C:\Users\MyText Editor"
start javaw -jar "MyTextEditor.jar"%var%
pause
我做了整个更改路径,因为我双击的文件和批处理文件位于不同的目录中。我不得不把它改成这个。
更新 2 --------------
最适合我的解决方案来自这位优秀的德本汉先生。
@echo off
pushd "C:\Users\MyText Editor"
start javaw -jar "MyTextEditor.jar" %*
我唯一的抱怨是,有一种情况,%* 没有返回带引号的路径。所以我正在寻找最终的解决方案。像这样的东西"%~*" 但这不起作用。
提前致谢
【问题讨论】:
-
那么请阅读我的回答。它解释了为什么它不起作用。
标签: batch-file whitespace