Как искать и заменять строку в нескольких текстовых файлах (внутри каталога) с помощью Windows CMD? Часть 2

Это связано с этим вопросом .

К сожалению, сценарии PowerShell отключены в системе, над которой я работаю. Я даже не могу использовать простой (Get-Content) .

Я выяснил, как делать изменения определенных строк в определенном файле PS (благодаря ответам). Тем не менее, я могу делать это только на одном файле PS за раз, и мне пришлось отредактировать сам пакетный файл, указав имя файла PS (его жестко закодированное). Все, что осталось, – это пакетный файл для обработки ВСЕХ PS-файлов в одном каталоге (без подкаталогов).

Вот код:


 REM Start of Code REM Auto-process PS files within a directory REM Changes how PS files look when displayed REM This batch file searches for instances of REM "OldStringx" within the file and replaces it REM with "NewStringx" REM Thicken line width from 1 to 5 Set "OldString1=1 setlinewidth" Set "NewString1=5 setlinewidth" REM Change Courier font to Helvetica Set "OldString2=Courier" Set "NewString2=Helvetica-Bold" REM To do: This batch file should process all PS files within REM the same directory where the batch file is located REM (Batch file and all PS files to be edited should be REM found on the same path). REM Specified below is the PS file to edit. Hard-coded for now. set file="psfile_to_edit.ps" @echo off cd /d . for /F "usebackq delims=" %%F in (`dir *.ps /b`) do set outFile="%%~nF_edited%%~xF" ( for /f "skip=2 delims=" %%a in ('find /n /v "" %file%') do ( set "ln=%%a" Setlocal enableDelayedExpansion set "ln=!ln:*]=!" if defined ln set "ln=!ln:%OldString1%=%NewString1%!" if defined ln set "ln=!ln:%OldString2%=%NewString2%!" echo(!ln! endlocal ) )>%outFile% REM Convert edited PS files to JPG REM This requires convert.exe to work REM Currently commented out to debug above parts. REM convert.exe %outFile% -autocrop %outfile:~0,-4%.jpg REM End of Code 

По сути, я просто хочу, чтобы этот код обрабатывал все файлы PS в одном каталоге. Пожалуйста помоги. И спасибо заранее!

непроверенной

 @ECHO OFF &SETLOCAL cd /d . for %%x in (*.ps) do call:process "%%~x" goto:eof :process set "outFile=%~n1_edited%~x1" (for /f "skip=2 delims=" %%a in ('find /n /v "" "%~1"') do ( set "ln=%%a" Setlocal enableDelayedExpansion set "ln=!ln:*]=!" if defined ln ( set "ln=!ln:%OldString1%=%NewString1%!" set "ln=!ln:%OldString2%=%NewString2%!" ) echo(!ln! endlocal ))>"%outFile%" exit /b 

Наконец, спустя более 2 недель, этот код, наконец, работает! Кредиты в Энроро.

 REM Start of Code REM Auto-process PS files within a directory REM Changes how PS files look when displayed REM This batch file searches for instances of REM "OldStringx" within the file and replaces it REM with "NewStringx" REM Thicken line width from 1 to 5 Set "OldString1=1 setlinewidth" Set "NewString1=5 setlinewidth" REM Change Courier font to Helvetica Set "OldString2=Courier" Set "NewString2=Helvetica-Bold" @ECHO OFF &SETLOCAL cd /d . for %%x in (*.ps) do call:process "%%~x" goto:eof :process set "outFile=%~n1_edited%~x1" (for /f "skip=2 delims=" %%a in ('find /n /v "" "%~1"') do ( set "ln=%%a" Setlocal enableDelayedExpansion set "ln=!ln:*]=!" if defined ln ( set "ln=!ln:%OldString1%=%NewString1%!" set "ln=!ln:%OldString2%=%NewString2%!" ) echo(!ln! endlocal ))>"%outFile%" exit /b REM Convert edited PS files to JPG REM This requires convert.exe to work REM Currently commented out to debug above parts. REM convert.exe %outFile% -autocrop %outfile:~0,-4%.jpg REM End of Code 

На последней части (переход на рис.). Большое спасибо еще раз @Endoro (mwahugs!).

Только для записи один код строки в Linux

Find / home / usuario / micarpeta / -name * .txt -exec sed -i "s / OldStringx / NewStringx / g" {} \

  • Могу ли я искать и заменять макрос Notepad ++?
  • MS Word Find Style, охватывающий 2 строки, которые содержат текст и заменяют часть
  • Скрипт для изменения содержимого файла в указанных файлах
  • Excel Smart Найти и заменить только определенные символы
  • Множественная нахождение и замена в текстовом документе
  • Рекурсивно заменяет каждый экземпляр слова в каталоге из командной строки linux
  • Regex Заменить из командной строки
  • Команда «rpl» Linux не заменяет текст
  • Notepad ++ найти строку с новой строкой и заменить
  • Массовый поиск и замена для изображений Macro - Microsoft Word 2013
  • Interesting Posts

    Правило CSS на основе контента

    Wifi спит, даже с Lock

    Изменение цвета текста выбранного элемента в прядильщике

    Как преобразовать строку даты с необязательными дробными секундами, используя Codable в Swift4

    Чтобы издеваться над объектом, нужно ли реализовать интерфейс или помеченный виртуальный?

    Класс контейнера / библиотека для C

    Каков максимальный номер сетевого порта TCP / IP, допустимый для IPv4?

    MySQL – триггер для обновления той же таблицы после вставки

    Проверьте, выбраны ли все флажки

    Firefox скрывает все, кроме области содержимого браузера

    когда использовать const и const ссылку в функции args

    Как точно определить, какие действия с файлом будут отменены при выполнении отмены в проводнике Windows?

    Перемещение по массивам с помощью встроенной сборки

    Как я должен подготовить свои 32-разрядные программы Delphi для возможного 64-битного компилятора?

    Является ли мой лицензионный ключ для Windows 7 x86 действительным для установки x64 в Windows?

    Давайте будем гением компьютера.