我已经设置了一个默认打开.txt文件的批处理文件。在之前的问题中,我发现%1给出了实际调用批处理文件的文件的路径。问题是:如果文件名包含空格,它将被解释为多个参数。批处理%1用空格获取路径
实施例:
开口文件 “C:\ Users \用户桌面\空间true.txt”
%1给出: “C:\ Users \用户桌面\空间”,然后%2给出:“true.txt”
我怎么能得到公正的名称和空白完整的文件路径,但不尝试做一个循环,试图通过合并%1%2%3%获得的完整路径4 ...
UPDATE -----------------------
对不起,有一个错过的沟通。下面的代码正在工作。诀窍是把“%*”,而不是“%1”
这里的代码:
@echo on
set var= "%*"
c:
cd "C:\Users\MyText Editor"
start javaw -jar "MyTextEditor.jar"%var%
pause
我做整体改变路径,因为文件,我双击与该批次文件在不同的目录中。我不得不改变它。
更新2 --------------------------
这工作对我最好的解决方案是从这个罚款绅士dbenham。
@echo off
pushd "C:\Users\MyText Editor"
start javaw -jar "MyTextEditor.jar" %*
唯一的抱怨我已经是,有一个情况下,如果%*
不返回引号的路径。所以我正在寻找最终解决方案。像这样的"%~*"
但这不起作用。
在此先感谢
那么读完我的答案吧。它解释了为什么它不起作用。 – Serenity 2015-02-18 02:57:18