Не удалось преобразовать XML в CSV с помощью сценария Perl через C # - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть следующий код для преобразования XML в CSV с помощью сценария Perl.Когда я запускаю сценарий perl через c #, но файлы не создаются, а вывод строки становится пустым.В чем проблема?У меня есть Perl-скрипт с расширением .txt, это нормально или нет?

string filePath = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + "/Files/SAVVIS_CDR_1806012231.XML";

if (Path.GetExtension(filePath) != "csv")
            {
                ProcessStartInfo perlStartInfo = new ProcessStartInfo(@"C:\Strawberry\perl\bin\perl.exe");
                string perlScriptFilePath = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + "/PerlScript/formatter_savvis.pl.txt";
                string csvFilePath = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + "/PerlScript/";
                perlStartInfo.Arguments = perlScriptFilePath + " " + filePath + " " + csvFilePath;
                perlStartInfo.UseShellExecute = false;
                perlStartInfo.RedirectStandardOutput = true;
                perlStartInfo.RedirectStandardError = true;
                perlStartInfo.CreateNoWindow = false;

                Process perl = new Process();
                perl.StartInfo = perlStartInfo;
                perl.Start();
                perl.WaitForExit();
                string output = perl.StandardOutput.ReadToEnd();
            }

Не могли бы вы помочь мне решить эту проблему?Заранее спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

Во-первых, чтобы выяснить, что пошло не так:

string error = perl.StandardError.ReadToEnd();

Кроме того, убедитесь, что у вас есть необходимые разрешения для создания файлов в выходном каталоге.Вы можете попытаться запустить процесс с правами администратора, чтобы выяснить, является ли это проблемой с правами доступа:

perlStartInfo.Verb = "runas";

Возможно, вы захотите запустить весь процесс хоста с повышенными разрешениями для этого.

(Это только для выяснения, является ли проблема разрешением! Если это так, предоставьте выходному каталогу необходимые разрешения и, если возможно, не запускайте автоматически сценарии с правами администратора в производственной среде.)

Также могут быть ошибки в самом скрипте perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...