2012-04-09 38 views
1

ソリューションからexeをsystem32フォルダにコピーする小さなバッチファイルを作成しました。Windowsフォームアプリケーションからバッチファイルを実行

copy "blah.exe" "%systemroot%/System32" 

実行した場合は、バッチファイルをダブルclikcingにより、デスクトップから罰金やコピーexeファイル作品(だけでなく、デスクトップ上のexe置い)

しかし、私がして、Windowsアプリケーションから、それをやってみました:

Process.Start("sample.bat"); 

(EXEファイルとbatfile - >プロパティ - >常にコピーする出力) cmdウィンドウは表示されますが、.exeファイルは出力先ディレクトリにありません。私はここで何が欠けていますか?

+0

あなたはblah.exe'が出力フォルダにあると '期待するのはなぜ? – Oded

+0

System32を使いこなすのは悪い考えです...もっと最近のWindows版には、これを防ぐためのいくつかのセキュリティ対策(他のUACの中でも)があります...あなたは正確に何をしようとしていますか? – Yahia

+0

@Yahia:System32にsysinternalユーティリティをコピーして、コマンドライン – user1240679

答えて

0

あなたがblah.exeを持っているその特定のフォルダへのパスを変更する特定のドライブに変更してから、特定のフォルダレットにあなたのソースフォルダがC:\ testと表示されたら、バッチファイルにcd \ CMDの試みを使用してコピーするには :

完全なパスなど

copy "C:\test\blah.exe" "%systemroot%/System32" 

EDITと

C: 
cd\test 
copy "blah.exe" "%systemroot%/System32" 

または使用コピー:それはのようなものでなければなりません

編集2:またはバッチファイルの

System.Diagnostics.Process.Start("cmd", "/c sample.bat"); 
+0

私はexeとバッチファイルを同じフォルダに持っています。私は 'batch'ファイルと' exe'ファイルをデスクトップに置いて、うまく動作する上記のバッチファイルを実行してみました。この場合、ソースディレクトリを 'cd Users/someuser/Desktop'に変更する必要はありませんでした。ここにバッチファイルのフルパスを置くことはできますが、プロジェクトを展開するときにバッチファイル内のこの 'cd 'のパスが変更されます。その場合は何も起こりません。 – user1240679

+0

bin/debug出力フォルダからバッチファイルを直接実行すると、exeファイルは 'System32'にコピーされます。これは 'Process.Start'から実行されていないことだけです – user1240679

+0

@ user1240679、編集した答えをチェックしてください、この質問もチェックしてくださいhttp://stackoverflow.com/questions/1469764/c-sharp-run-command-prompt-コマンド – Habib

関連する問題