2017-02-13 110 views
0

我有一個批處理文件,我從閃存驅動器運行。此文件試圖從批處理文件開始在後臺啓動程序

1. Close 2 programs 
2. Update data on the computer based on the data on the flash drive 
3. Restart the programs 

在該批次中的代碼是:

taskkill /IM "MyProgram".exe 
taskkill /f /fi "imagename eq MyProgram.exe" 

copy e:\File1.xml C:\Folder\SubFolder1\Themes\Data\File1.xml /Y 
copy e:\File2.xml C:\Folder\SubFolder1\Themes\Data\File2.xml /Y 
copy e:\File3.xml C:\Folder\SubFolder2\Themes\Data\File3.xml /Y 
copy e:\File4.xml C:\Folder\SubFolder2\Themes\Data\File4.xml /Y 

start /MAX "" "C:\Folder\SubFolder2\MyProgram.exe" 
start /MAX "" "C:\Folder\SubFolder1\MyProgram.exe" 

前兩個步驟工作得很好,與上線1-6的命令。我的問題始於步驟3和第7和第8行的命令。

批處理命令是否有問題?

編輯:挖了多一點後,我發現程序似乎是在後臺開始。在查看任務管理器時,程序將顯示在「後臺進程」部分中,而不是按預期顯示在前臺中。

+1

根據當前的計算機驅動器字母'e:'可能是錯誤的。或者只使用'\'或者使用'%〜d0'從運行的批處理中取出驅動器 – LotPings

+0

@LotPings - 前2個步驟正常工作。 e:驅動器在過程中使用的計算機之間保持不變。 – rdbradshaw

+1

沒有保證總是得到相同的驅動器號。前兩個命令不使用任何驅動器號。 (1,1,4)中使用for/l %% x的測試會複製「%〜d0 \ file %% x.xml」「C:\ Folder \ SubFolder2 \ Themes \ Data \ File %% x.xml 「/ Y'而不是重複不會造成傷害。 – LotPings

回答

1

我相信發生的事情是你的程序不知道配置文件的位置,因爲工作目錄是批處理文件自己啓動的地方。所以你的程序正在你的USB驅動器上查找它的文件。通過在START命令中使用/ D選項,它將把工作目錄切換到您設置的任何路徑。

start "" /MAX /D "C:\Folder\SubFolder2\" MyProgram.exe 
相關問題