这些批处理命令的含义是什么?

时间:2015-05-04 11:09:11

标签: windows batch-file command-line cmd

我只是想详细了解这些说明的含义:

"%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;
 }

以上代码制作了

2 个答案:

答案 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\\..应该是上层目录。

如果不再分享更多代码,就不能再说了。