Потрібно виконати довгий код команд (віндовська консоль виконання команд) Windows commands за допомогою процесу створеного програмою (в C#), також від Windows commands потрібно отримати текстову відповідь.
Під "довгим кодом" я маю на увазі Windows commands код, що перевищує 1000 символів.
▼Приклад довгого коду, але це не важливо
Звичайно можна викликати ffmpeg.exe на без Windows commands, але в деяких файлах ще є інші команди які не виконаються без Windows commands
C:\Users\Oleksandr\source\repos\App\bin\Debug\FFMPEG\ffmpeg.exe ^
-i "E:\Downloads\69.mp4" ^
-i "E:\Downloads\75.mp4" ^
-i "E:\Downloads\80.mp4" ^
-i "E:\Downloads\24.mp4" ^
-i "E:\Downloads\50.mp4" ^
-i "E:\Downloads\25.mp4" ^
-i "E:\Downloads\33.mp4" ^
-i "E:\Downloads\29.mp4" ^
-i "E:\Downloads\9.mp4" ^
-i "E:\Downloads\20.mp4" ^
-i "E:\Downloads\99.mp4" ^
-i "E:\Downloads\43.mp4" ^
-i "E:\Downloads\18.mp4" ^
-i "E:\Downloads\19.mp4" ^
-i "E:\Downloads\10.mp4" ^
-i "E:\Downloads\86.mp4" ^
-i "E:\Downloads\28.mp4" ^
-i "E:\Downloads\36.mp4" ^
-i "E:\Downloads\67.mp4" ^
-i "E:\Downloads\12.mp4" ^
-i "E:\Downloads\65.mp4" ^
-i "E:\Downloads\7.mp4" ^
-i "E:\Downloads\47.mp4" ^
-i "E:\Downloads\30.mp4" ^
-i "E:\Downloads\15.mp4" ^
-i "E:\Downloads\11.mp4" ^
-i "E:\Downloads\54.mp4" ^
-i "E:\Downloads\22.mp4" ^
-filter_complex ^
"[0:v][1:v]xfade=transition=fade:duration=1:offset=19[vfade1]; ^
[vfade1][2:v]xfade=transition=fade:duration=1:offset=38[vfade2]; ^
[vfade2][3:v]xfade=transition=fade:duration=1:offset=57[vfade3]; ^
[vfade3][4:v]xfade=transition=fade:duration=1:offset=76[vfade4]; ^
[vfade4][5:v]xfade=transition=fade:duration=1:offset=95[vfade5]; ^
[vfade5][6:v]xfade=transition=fade:duration=1:offset=114[vfade6]; ^
[vfade6][7:v]xfade=transition=fade:duration=1:offset=133[vfade7]; ^
[vfade7][8:v]xfade=transition=fade:duration=1:offset=152[vfade8]; ^
[vfade8][9:v]xfade=transition=fade:duration=1:offset=171[vfade9]; ^
[vfade9][10:v]xfade=transition=fade:duration=1:offset=190[vfade10]; ^
[vfade10][11:v]xfade=transition=fade:duration=1:offset=209[vfade11]; ^
[vfade11][12:v]xfade=transition=fade:duration=1:offset=228[vfade12]; ^
[vfade12][13:v]xfade=transition=fade:duration=1:offset=247[vfade13]; ^
[vfade13][14:v]xfade=transition=fade:duration=1:offset=266[vfade14]; ^
[vfade14][15:v]xfade=transition=fade:duration=1:offset=285[vfade15]; ^
[vfade15][16:v]xfade=transition=fade:duration=1:offset=304[vfade16]; ^
[vfade16][17:v]xfade=transition=fade:duration=1:offset=323[vfade17]; ^
[vfade17][18:v]xfade=transition=fade:duration=1:offset=342[vfade18]; ^
[vfade18][19:v]xfade=transition=fade:duration=1:offset=361[vfade19]; ^
[vfade19][20:v]xfade=transition=fade:duration=1:offset=380[vfade20]; ^
[vfade20][21:v]xfade=transition=fade:duration=1:offset=399[vfade21]; ^
[vfade21][22:v]xfade=transition=fade:duration=1:offset=418[vfade22]; ^
[vfade22][23:v]xfade=transition=fade:duration=1:offset=437[vfade23]; ^
[vfade23][24:v]xfade=transition=fade:duration=1:offset=456[vfade24]; ^
[vfade24][25:v]xfade=transition=fade:duration=1:offset=475[vfade25]; ^
[vfade25][26:v]xfade=transition=fade:duration=1:offset=494[vfade26]; ^
[vfade26][27:v]xfade=transition=fade:duration=1:offset=513" "E:\Downloads\result_88.mp4"
(С#) код що нижче, працює з не великим кодом Windows commands за довжиною, підозрюю що щось переповнюється і тому великий за довжиною код Windows commands не працює, тобто програма зависає і дальше нічого не відбувається... Можете підказати в чому може бути проблема ?
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine(command);//command - тут код Windows commands
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
List<string> results = new List<string>();
string str;
while ((str = cmd.StandardOutput.ReadLine()) != null)
{
results.Add(str);
}
return results;
Ще одна ідея виникла: створити bat файл, записати довгий код (Windows commands) в цей файл, і передати цей файл в процес який відкрив cmd (Windows commands).
...
cmd.StandardInput.WriteLine("E\...PATH...\file_with_windows_commands.bat");
...
Проблема в такому варіанті, що постійно строюється файл на реальному жорсткому диску (це повільно і не зручно, а також
потрібно постійно видаляти файл). Чи можна створити файл у оперативній пам'яті, та передати цей файл в cmd (Windows commands) Якщо так, то як ?