У меня возникла странная проблема при запуске файла bat с кодом C# (Также из cmd.exe и окна Run). Прежде всего, мой файл летучая мышь выглядит следующим образомстранное поведение при запуске файла bat bat
file_copy.bat
NET USE %1 /USER:%2 %3 COPY /Y %4 %5 NET USE %1 /DELETE PAUSE
я включил этот летучая мышь файл в визуально студии 2013, и установить Copy To Output Directory
в Always Copy
из свойств. Мой код для запуска этой летучей мыши файл выглядит следующим образом
string args = "\"\\\\192.168.54.196\\c$\" \"user\" \"123456\" \"\\\\192.168.54.196\\c$\\paykiosk\\logs\\pgw_150113.log\" \"C:\\Users\\IlhamIs\\AppData\\Local\\Temp\\pgw_150113.log\""
var processInfo = new ProcessStartInfo
{
UseShellExecute = false,
FileName = "file_copy.bat",
Arguments = args
};
var process = new Process { StartInfo = processInfo };
process.Start();
Я строю свой проект и, очевидно, file_copy.bat копируется в bin\debug
каталог (в моем случае). Затем я запускаю приложение, файл bat выполняется, но первая команда каким-то образом модифицирована в runtume, поэтому возникает ошибка, указывающая 'я╗┐NET' is not recognized as an internal or external command, operable program or batch file.
. Это wierd, я╗┐
записывается в начало первой команды. Вот полный вывод, который я получил:
C:\Users\IlhamIs\Desktop\test\bin\debug>я╗┐NET USE "\\192.168.54.196\c$" /USER:"user" "123456"
'я╗┐NET' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\IlhamIs\Desktop\test\bin\debug>COPY /Y "\\192.168.54.196\c$\paykiosk\logs\pgw_150113.l
og" "C:\Users\IlhamIs\AppData\Local\Temp\pgw_150113.log"
Logon failure: unknown user name or bad password.
C:\Users\IlhamIs\Desktop\test\bin\debug>NET USE "\\192.168.54.196\c$" /DELETE
The network connection could not be found.
More help is available by typing NET HELPMSG 2250.
C:\Users\IlhamIs\Desktop\test\bin\debug>PAUSE
Press any key to continue . . .
Затем создайте файл летучей мыши в bin\debug
каталоге с тем же скриптом (file_copy_2.bat), обратите внимание, что это не создается визуально студией. На этот раз я меняю FileName = "file_copy.bat"
на FileName = "file_copy_2.bat"
, чтобы сделать мое приложение для запуска созданного мной файла, а затем запустил приложение. Это выглядит нелепо, но это сработало, все 3 команды выполнены успешно.
Это действительно странно. Что мне не хватает? Визуальная студия делает что-то особенное с файлом bat во время компиляции и копирования файла в выходной каталог? Оба file_copy.bat
и file_copy_2.bat
одинаковы (я проверял атрибуты на всякий случай, тоже то же самое). Созданная визуальная студия файла не выполняет первую команду, но тот, который я создал, преуспевает. Зачем?
FYI, код кодовой страницы вернулся из команды CHCP является 866. Я попытался 65001, который является UTF-8, но у меня есть подобный результат, различные символы, написанные в начале команды вместо я╗┐
Пожалуйста, прокомментируйте ниже, если детали вопроса не ясно вам, как я мог бы объяснить неправильно
заранее спасибо
посмотрите на [это] (http://superuser.com/questions/113696/strange-symbols-while-executing-win-command-file) вопрос и ответ на SuperUser, у него такая же проблема с тем же странным символы – grabthefish
Это выглядит как знак байтового байта. Используйте текстовый редактор, который можно сохранить без спецификации. Как блокнот ++. Или сохранить как ASCII/ANSI. – spender
Я сохранил файл без спецификации, и он сработал!Благодарим вас за помощь, я много googled, но не нашел этот вопрос, размещенный на SuperUser, потратил весь день на решение этого вопроса. –