Задать вопрос
  • Как копию вывода BAT файла отправлять в файл?

    @nhutils
    Как дублировать вывод в файл, то есть чтобы и отображалось на экране, и сохранилось в файл. Подходит для выполнения bat файла или одной программы.

    В командной строке
    for /F "delims=" %i IN ('program.exe') DO @echo %i && @echo %i>>program.out


    То же самое в bat файле (пишутся двойные символы процента):
    for /F "delims=" %%i IN ('program.exe') DO @echo %%i && @echo %%i>>program.out


    Ещё один вариант - через WSH JS скрипт, который также читает stdin построчно, затем выводит каждую строку в stdout и в заданный файл.
    var stdin = WScript.StdIn;
    var stdout = WScript.StdOut;
     
    var fso = WScript.CreateObject("Scripting.FileSystemObject");
    var filename = WScript.Arguments(0);
    var file = fso.OpenTextFile(filename,2,true,-1);
     
    while (!stdin.AtEndOfStream)
    {
        var str = stdin.ReadLine();
        stdout.WriteLine(str);
        file.WriteLine(str);
    }
     
    file.Close();

    Строка запуска попроще, чем в первом варианте:
    program.exe | cscript duplicate.js program.out
    Ответ написан
    Комментировать
  • Какой программой пакетно заменить текст по списку из файла с использованием регулярныйх выражений?

    @nhutils
    Возможно, подойдет nhrt.exe в режиме list (замены по списку из внешнего файла):
    nhrplc.exe -list:replace_list.txt a*.txt
    В файле списка могут быть и регулярные выражения, и простой текст:
    -spt:"Doc3" -t:"Document" -i
    -sre:"Doc[A-Z]" -t:"Document"
    Ответ написан
    Комментировать