2017-07-24 48 views
0

我想從不同的批處理文件(random.bat)運行批處理文件(在這種情況下爲launch.bat)。批處理文件在錯誤的地方打開

random.bat寫了這個:

start \folder\launch.bat` 

launch.bat將使用位於\folder\其他文件。

當我運行random.bat它說,我想這launch.bat需求無法在random.bat位於文件夾中找到的文件

知道如何從那裏跑launch.bat,而不是從那裏random.bat位於

+2

您正在解決錯誤的問題。尋找相對於工作目錄的私人資源是不正確的。讓launch.bat根據自己的路徑找到它的私有資源(即'%〜dp0')。 – eryksun

回答

0

如果您在命令提示符處鍵入start /?你得到你所需要的信息或看here at the technet description of start

/d <Path>指定啓動目錄。

你的命令應該是:

start /D \folder \folder\launch.bat 

爲您傳遞啓動目錄與/D

+0

嗨@Justin如果這個或任何答案已經解決了您的問題,請點擊複選標記考慮[接受它](https://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 –

0

截至launch.bat頂部只需添加一行:

@CD /D "%~dp0" 


另外,如果你希望運行從另一個你最好的選擇是一個批處理文件中 random.bat使用 Call而不是 Start

Call "folder\launch.bat" 

如果你沒有寫訪問launch.bat,然後使用random.bat如下:

If Exist "folder\launch.bat" (
    PushD "folder" 
    Call "launch.bat" 
    PopD 
) 
+0

如果使用'@CD/D「%〜dp0」'方法,它可能會在返回到'random.bat'時保留在那個目錄中。可能應該在退出launch.bat之前在開始時使用'PUSHD'%〜dp0'',並使用'POPD'。 – lit

+0

@lit,我不會不同意,但如果他們可以寫入'launch.bat',那麼我建議他們也發佈它的內容,以便我們可以重新構建適當解決方案的一部分而不是猜測。 – Compo