패치 스크립트에 특정 파일을 지정하려면 어떻게 해야 합니까?

패치 스크립트에 특정 파일을 지정하려면 어떻게 해야 합니까?

텍스트 파일을 찾은 다음 파일 내에서 지정된 문자열을 바꾸는 배치 스크립트를 만들고 있습니다. 내가 겪고 있는 유일한 문제는 지정된 파일의 경로를 설정하는 것입니다. 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

  1. Targetpath는 아무런 효과가 없으며 불필요합니다.
  2. Powershell은 이미 경로 항목을 통해 연결할 수 있어야 합니다.
  3. 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%\""

관련 정보