我只是想详细了解这些说明的含义:
"%0\\ \n cd %0\\.. \n cd /d %0\\.. \n mup.exe"
我搜索过它,但我没有找到任何东西。 在我的程序中调用一个方法,该方法在'programmer TNM'安装路径中生成一个批处理文件:
createbatchFile(new File(batchFile));
该方法的实施是:
private void createbatchFile(File file) throws IOException, Exception{
if(file.exists())
file.delete();
File f = new File(file.getPath(),file.getName());
f.deleteOnExit();
char[] cmd = "%0\\ \n cd %0\\.. \n cd /d %0\\.. \n mup.exe".toCharArray();
writeToFile(cmd , file);
return;
}
以上代码制作了
答案 0 :(得分:2)
首先,那不是批次。嗯,这是批次的。它是由其他语言编写的批处理;你可以告诉,因为批处理不使用\
作为转义字符,它不知道如何处理\n
字符。这似乎是某种语言创建批处理文件,但没有更多代码,很难说。
%0
是脚本本身的命令行参数
\\
会将文字\
写入输出文件
\n
是换行符
cd %0\\..
将移动到当前目录的父目录...如果%0是有效的目录路径。但正如我之前所说,%0是脚本本身,而且说cd script.bat\..
不会做任何事情
cd /d %0\\..
是相同的,但使用/d
选项,允许cd
在驱动器之间移动,例如从C:到D:。但同样,这实际上不会做任何事情,因为语法不正确
mup.exe
运行mup.exe - 不确定这是什么,但它是运行的
答案 1 :(得分:0)
%0
命令,则批处理文件中的 SHIFT
是脚本本身的名称。
在您的示例中,%0\\
我认为有一个以批处理命名的创建目录,这是一个传递给另一个命令的命令。
%0\\..
应该是上层目录。
如果不再分享更多代码,就不能再说了。