如何在另一个目录中执行* .cmd,就好像它正在当前目录中运行一样?
想象一下以下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,就好像它在当前目录中运行一样?
您可以生成一个子cmd
实例然后执行cd
改变工作目录,然后执行命令,这是通过直接运行cmd
完成,随着&&
来连接命令:
cmd /c "cd PATH_OF_DESIRED_WORKING_DIRECTORY" && "myscript.cmd"
除了该问题询问如何*不*更改当前目录。 :-) – 2015-02-09 23:59:26
@HarryJohnston设置当前目录是必要的,但这种技术意味着'cd'命令只影响'myscript.cmd'而不影响父目录cmd上下文中的“当前”当前目录。 – Dai 2015-02-10 00:00:18
为什么要设置当前目录是必要的?根据这个问题,现有的当前目录'c:\ temp'已经是正确的了。 – 2015-02-10 00:02:42
如果您只想运行它,只需在命令行键入..\myscript.cmd
即可。它将当前目录作为当前目录。您可以通过将echo %CD%
作为批处理文件的第一行进行验证。它应该打印c:\temp\
您可以调用'cmd'的子实例,并将其工作目录作为目标。 – Dai 2015-02-09 23:37:40
您可以将其扩展为答案吗? – hawkeye 2015-02-09 23:38:54
您可以通过提供完整或相对路径来运行脚本,例如'c:\ myscript.cmd'或甚至'../ myscript.cmd'。 – Justin 2015-02-09 23:50:38