Это связано с этим вопросом.
К сожалению, сценарии 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 в одном каталоге. Пожалуйста помоги. И заранее спасибо!