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

现在我开发了一个 Windows 应用程序来在 c# 中运行该批处理文件。我运行批处理文件的代码是:

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 时,您的工作目录设置为应用程序的目录。

使用接受 ProcessStartInfo 的 Process.Start 的重载,然后将 WorkingDirectory 设置为批处理文件的路径。

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

于 2011-08-11T08:27:45.853 回答
0

更改您启动的进程代码以获取您想要的目录(可能是硬编码路径),而不是 TJ 所说的工作目录。

于 2011-08-11T08:29:59.497 回答