2017-02-13 12 views
0

私はフラッシュドライブから実行するバッチファイルを持っています。プログラムはバッチファイルから開始され、バックグラウンドで開始されます。

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" 

最初の2つのステップは、ライン1-6上にあるコマンドを使用して、正常に動作:このファイルは、

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

このバッチのコードを試みます。私の問題はステップ3と7,8行目のコマンドから始まります。

バッチコマンドに何か問題はありますか?

EDIT:もう少し掘り下げた後、プログラムがバックグラウンドで開始しているように見えた。タスクマネージャを見ると、プログラムは「フォアグラウンド」に表示されるのではなく、「バックグラウンドプロセス」セクションに表示されます。

+1

現在のコンピュータによっては、「e:」という文字が間違っている可能性があります。 '%\ d0'で実行中のバッチからドライブを取り出してください。 – LotPings

+0

@LotPings - 最初の2つのステップが正しく動作しています。 e:ドライブは、プロセスで使用されているコンピュータ間で同じままです。 – rdbradshaw

+1

常に同じドライブ文字を取得する保証はありません。最初の2つのコマンドはドライブ文字を使用しません。 for/l %% x in(1,1,4)を使ったテストは、 "%〜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 
関連する問題