Как мне указать конкретный файл для моего сценария исправления?

Как мне указать конкретный файл для моего сценария исправления?

Я создаю пакетный скрипт, который найдет текстовый файл, а затем заменит указанную строку в файле. Единственная проблема, с которой я столкнулся, — это задание пути к указанному файлу. Я пробовал использовать cdдля задания пути, но, похоже, это ничего не дает. Будет ли работать using 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 можно реализовать с помощью простой команды, временный файл не нужен.

:: 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%\""

Связанный контент