0

C#でコマンドバッチファイルを実行する際に問題が発生します。実際、すべてのディレクトリファイルのファイルサイズを取得するために使用されるLog.batという名前のバッチファイルを作成しました。このバッチファイルをデスクトップに置きました。これを実行すると、ディレクトリとそのファイルサイズが正常に取得されます。
バッチファイルの私のスクリプトは次のとおりです。

dir /s > "C:\Documents and Settings\dinesh.kumar\Desktop\LogFile.txt"

この指定されたパスは、ファイルの保存場所です。出力:

Directory of C:\Documents and Settings\dinesh.kumar\Desktop\Color Cop

10/24/2007  12:08 AM            97,792 ColorCop.exe
08/10/2006  03:12 PM            26,235 ColorCop.HLP
08/10/2006  03:12 PM               372 file_id.diz
10/23/2007  11:50 PM             1,332 license.txt
10/24/2007  12:06 AM            10,877 readme.txt
           5 File(s)        136,608 bytes

今、私はそのバッチファイルをc#で実行するためのWindowsアプリケーションを開発しました。バッチファイルを実行するための私のコードは次のとおりです。

protected void btnRun_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process.Start("C:\\Documents and Settings\\dinesh.kumar\\Desktop\\Log.bat");
}

しかし、このアプリケーションを実行すると、デスクトップにLogFile.txtが作成されますが、このようなmicrosoftvisualstudioディレクトリのファイルが提供されます。出力

Directory of C:\Program Files\Microsoft Visual Studio 8\Common7\IDE

08/11/2011  12:53 PM    <DIR>          .
08/11/2011  12:53 PM    <DIR>          ..
06/29/2011  04:14 PM    <DIR>          1033
09/23/2005  02:53 AM            27,648 cmddef.dll
09/23/2005  04:24 AM           257,024 compluslm.dll
09/23/2005  03:37 AM           139,264 csformatui.dll
09/23/2005  07:15 AM            33,792 custsat.dll
09/23/2005  07:15 AM         1,038,848 dbghelp.dll
09/22/2005  11:16 PM            27,112 dteproperties.tlb
06/29/2011  04:14 PM    <DIR>          ExceptionAssistantContent
06/29/2011  04:14 PM    <DIR>          HTML
08/11/2011  12:53 PM            96,032 LogFile.txt
09/23/2005  06:56 AM            19,456 MakeZipExe.exe
09/23/2005  06:56 AM           393,216 Microsoft.Data.ConnectionUI.Dialog.dll
09/23/2005  06:56 AM             6,144 Microsoft.Data.ConnectionUI.dll

申し訳ありませんが、データが長すぎます。貼り付けられません。
デスクトップディレクトリとそのファイルが表示されないのはなぜですか。私は何を間違えましたか?コードや提案をいただければ幸いです。

前もって感謝します

4

2 に答える 2

3

これは、Process.Startを呼び出すと、作業ディレクトリがアプリケーションのディレクトリに設定されるためです。

ProccessStartInfoを受け入れるProcess.Startのオーバーロードを使用してから、WorkingDirectoryをバッチファイルのパスに設定します。

http://msdn.microsoft.com/en-us/library/0w4h05yb.aspx

于 2011-08-11T08:27:45.853 に答える
0

TJが言ったように、作業ディレクトリではなく、必要なディレクトリ(ハードコードされたdaパスである可能性があります)を取るように起動するプロセスコードを変更します。

于 2011-08-11T08:29:59.497 に答える