텍스트 파일을 찾은 다음 파일 내에서 지정된 문자열을 바꾸는 배치 스크립트를 만들고 있습니다. 내가 겪고 있는 유일한 문제는 지정된 파일의 경로를 설정하는 것입니다. cd
경로를 설정하기 위해 을 사용해 보았지만 아무 것도 하지 않는 것 같습니다. 작업을 사용할 예정인가요 cd
? 아니면 다른 매개변수나 추가 매개변수를 사용해야 하나요? 내 현재 스크립트는 다음과 같습니다.
@echo off
SET TARGETPATH= "%TARGETPATH%"
setlocal enableextensions disabledelayedexpansion
cd "%TARGETPATH%"
set search=Hello
set replace=Goodbye
set textFile=Test.txt
:PowerShell
SET PSScript=%temp%\~tmpStrRplc.ps1
ECHO (Get-Content "%~dp0%textFile%").replace("%search%", "%replace%") ^| Set-Content "%~dp0%textFile%">"%PSScript%"
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
EXIT
:END
답변1
- Targetpath는 아무런 효과가 없으며 불필요합니다.
- Powershell은 이미 경로 항목을 통해 연결할 수 있어야 합니다.
- ps-script는 임시 파일이 필요 없이 간단한 명령으로 래핑될 수 있습니다.
:: Q:\Test\2018\04\14\SU_1313967.cmd
@echo off
Setlocal EnableExtensions DisableDelayedExpansion
set search=Hello
set replace=Goodbye
set "textFile=%~dp0Test.txt"
Powershell -NonI -NoP -C "(GC \"%textFile%\").replace(\"%search%\", \"%replace%\") | SC \"%textFile%\""