2015-02-09 86 views
0

想象一下以下CMD如何在另一个目录中执行* .cmd,就好像它正在当前目录中运行一样?

c:\myscript.cmd 

java.exe myclass.class 

如果它正在运行的文件是:

c:\temp\myclass.class 

我想,如果它是在当前目录中运行运行CMD文件,即我的命令线是开放的c:\temp\

我想运行一个较短的方式:

c:\temp\>mv ../myscript.cmd . 
c:\temp\>myscript.cmd 
c:\temp\>mv myscript.cmd ..\ 

我的问题是:如何在另一个目录中执行* .cmd,就好像它在当前目录中运行一样?

+0

您可以调用'cmd'的子实例,并将其工作目录作为目标。 – Dai 2015-02-09 23:37:40

+0

您可以将其扩展为答案吗? – hawkeye 2015-02-09 23:38:54

+2

您可以通过提供完整或相对路径来运行脚本,例如'c:\ myscript.cmd'或甚至'../ myscript.cmd'。 – Justin 2015-02-09 23:50:38

回答

0

您可以生成一个子cmd实例然后执行cd改变工作目录,然后执行命令,这是通过直接运行cmd完成,随着&&来连接命令:

cmd /c "cd PATH_OF_DESIRED_WORKING_DIRECTORY" && "myscript.cmd" 
+0

除了该问题询问如何*不*更改当前目录。 :-) – 2015-02-09 23:59:26

+0

@HarryJohnston设置当前目录是必要的,但这种技术意味着'cd'命令只影响'myscript.cmd'而不影响父目录cmd上下文中的“当前”当前目录。 – Dai 2015-02-10 00:00:18

+0

为什么要设置当前目录是必要的?根据这个问题,现有的当前目录'c:\ temp'已经是正确的了。 – 2015-02-10 00:02:42

1

如果您只想运行它,只需在命令行键入..\myscript.cmd即可。它将当前目录作为当前目录。您可以通过将echo %CD%作为批处理文件的第一行进行验证。它应该打印c:\temp\

相关问题