2011-10-17 27 views
2

プロセスで使用されているバッチファイルを作成しました。私は現在、アプリケーションがローカルマシンのディレクトリを指し示しているだけです。batファイルを.exeに埋め込み、Processクラスと共に使用することはできますか?

私のexeをこのバッチにバンドルするのではなく、exeファイルに含めるようにリソースとして埋め込みたいと思います。これはバッチファイルで可能ですか?

ProcessStartInfo startInfo = new ProcessStartInfo() 

startInfo.FileName = "c:\test\batchFile.bat"; 

// set up and execute batch file with various arguments 

バッチファイルを自分のソリューションに追加し、プロジェクトファイルに「リソース」として追加しました。私はこれが道のりであるか、私のプロジェクトでこれをどうやってアクセスするのかが完全にはわからない。

答えて

2

前に - 必要であれば、あなたは...何でも答えを埋め込むことができますこれははいです:-)

埋め込みバッチファイルの使い方は、最も簡単なオプションはリソースから読み込み(http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspxhttp://msdn.microsoft.com/en-us/library/system.reflection.assembly.getmanifestresourcestream.aspx)、それを実際のf ile - それを使ってください。

.NET EXE/DLLを埋め込む場合は、実際のファイルとして保存せずに使用できます。バッチファイルを使用すると、実際のファイルとして保存する必要があります。

1

もちろんの

は、あなたがそれを実行する必要がありますが、とcommand.comバッチファイルを埋め込むよう

System.Diagnostics.Process.Start("cmd", "/c c:\test\batchFile.bat"); 
1

どのようにこのアプローチについて:あなたのプログラムで

  • 店舗バッチファイル
  • は一時ファイル
  • 実行この一時的なバッチに内容を保存する(リソースまたは文字列定数または...など)ファイル
1

おそらく、最も簡単な方法は、.batを一時ファイルに書き出し、その一時ファイルを実行することです。

cmd.exeは、私の経験では、はなはだしいものではなく、さまざまな状況でさまざまな動作が可能です。ファイルシステムから実行する.batファイルのように動作させたい場合は、ファイルシステムから.batファイルを実行する必要があります。

cmd.exeのインスタンスにコマンドをパイプしてみることもできますが(私はお勧めできませんが)、私が言うように、あなたは別の動作をするかもしれません。

関連する問題