来自cmd.exe / k的多个命令和&不起作用

时间:2013-01-31 05:44:25

标签: batch-file cmd

如果在某个地方得到回答,请道歉,一直在寻找30多分钟无济于事。

所以我有一个批处理文件,我在其中调用:

%comspec% /K "CD ..\..\test\java_6_86 & "C:\Program Files (x86)\Java\jdk1.6.0_38\bin\javac.exe" -classpath TestLib.jar Test1.java"

然而,这不起作用。

我想做的是:

(在批处理文件中)

  1. 打开新的命令提示符
  2. 将当前目录更改为Test1.java所在的目录
  3. 然后调用java编译器并编译Test1.java
  4. 另外,是否有可能告诉命令从哪里开始,而不是像第一个命令那样做CD?

    谢谢, DOW

2 个答案:

答案 0 :(得分:0)

我不知道你的%comspec%是什么,但是假设它是'cmd'这应该可以解决问题(cmd /K必须在javac调用前面)

cd ..\..\test\java_6_86 & cmd /K "C:\Program Files (x86)\Java\jdk1.6.0_38\bin\javac.exe" -classpath TestLib.jar Test1.java

顺便说一句,两个班轮将更具可读性

cd ..\..\test\java_6_86
cdm /K "C:\Program Files (x86)\Java\jdk1.6.0_38\bin\javac.exe" -classpath TestLib.jar Test1.java

您当然可以使用绝对路径指定类路径和java源文件,并跳过目录更改。

答案 1 :(得分:0)

要回答第二个问题,您可以使用pushd/popd。顾名思义,那些允许存储当前目录,然后更改为给定路径(pushd path),然后popd弹出/恢复原始当前目录。如果您需要临时更改当前目录以进行某些处理,或者希望屏蔽代码以防止不需要的目录更改(例如,如果您调用另一个批处理),这将非常有用。它也可以方便地使用网络路径,因为它会为它自动创建一个驱动器号。 Help pushd将为您提供完整的信息。