2015-02-09 87 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\

相關問題