2011-08-11 22 views
0

我正面临通过C#运行命令批处理文件的问题。其实我已经创建了一个名为Log.bat的批处理文件,它用于获取所有目录文件的文件大小。我把这个批处理文件放在我的桌面上。当我运行它时,它成功检索目录及其文件大小。
我的批处理文件的脚本是:在c#中运行批处理文件时显示错误的数据

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 

对不起,数据是这么长。我不能粘贴它。
它为什么不显示桌面目录及其文件。 我做错了什么?任何代码或建议将不胜感激。

在此先感谢

+0

你的WinForms运行在什么目录? – Tim

+0

出于兴趣,你为什么要使用这个批处理文件? –

回答

0

更改过程代码的发布采取哪些您要的目录(可进行硬编码DA路径),而不是工作目录为TJ说。

+0

有很少的,如果有的话,很好的理由硬编码像一个程序,国际海事组织的路径。 – Tim

+0

使其成为变量或常量的最佳实践,而不是每次都使用路径的文本。 – TJHeuvel

+0

@蒂姆,是的,因此我说“可能”:) – Zenwalker