Неправильные данные показывают при запуске командного файла в C # - PullRequest
0 голосов
/ 11 августа 2011

У меня проблема с запуском командного файла через 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

Извините, данные так долго. Я не могу вставить в него.
Почему это не показывает каталоги рабочего стола и их файлы. Что я сделал не так? Любой код или предложение будет оценено.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

Это потому, что ваш рабочий каталог установлен на каталог приложения, когда вы вызываете Process.Start.

Используйте перегрузку Process.Start, которая принимает ProccessStartInfo, затем задайте для WorkingDirectory путь к пакетному файлу.

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

0 голосов
/ 11 августа 2011

Измените ваш код процесса, который вы запускаете, чтобы взять каталог, который вы хотите (может быть hardcode da path), а не рабочий каталог, как сказал TJ.

...