2008-11-20 57 views
0

我創建了一個簡單的批處理文件(.bat),其中包含一系列要自動觸發到命令窗口中的命令。批處理看起來像這樣:我的Windows批處理文件(.bat)有什麼問題?

mmd dll1.dll -mf -aW 
mmd dll2.dll -mf -aW 
mmd dll3.dll -mf -aW 

如果我將一堆cmds複製並粘貼到命令窗口中,它們都會正確執行。但是,如果我嘗試直接將批處理文件拖放到命令窗口並執行它,則第一個命令將啓動並最終無法成功執行。爲什麼?

我運行命令的命令窗口需要在命令可以成功運行之前設置很多環境變量。當我拖動批處理文件(使用絕對路徑)時,它看起來像我從來沒有設置這些變量。不要將批處理文件中的命令與主機命令窗口在相同的上下文中運行?那我該怎麼做?

+0

你能提供錯誤信息嗎? – Mnementh 2008-11-20 13:40:08

+0

我不得不看到你得到的頁面的屏幕截圖。 – 2008-11-20 13:40:15

+0

只是一個特定於我正在運行的命令的錯誤。像命令無法運行,因爲沒有定義前提條件。 – 2008-11-21 10:28:10

回答

0

你是否在引用你正在調用的文件名?並且是不同行上的文件名? (如果不是,他們應該是)

1

它正在執行帶有相對於.bat文件的路徑的文件(而不是其中的那些DLL)?

0

您的PATH設置正確嗎? 執行批次時,您是否在正確的目錄中? 您是否檢查過批處理文件中不可見的無效字符?

1

您的命令中可能存在影響批處理文件的特殊字符,例如%。你需要逃避/刪除這些。

否則,這可能與您正在運行的程序有關,或者與終端混淆或者非常依賴其環境。你有任何關於它的信息嗎?嘗試運行批處理文件中的第一行。

1

您是否嘗試在「.bat」中的命令之前添加「call」?

通過在cmd行之前添加「call」,可以保證在子進程結束時父進程繼續工作。