Wie bestimme ich eine bestimmte Datei für mein Patch-Skript?

Wie bestimme ich eine bestimmte Datei für mein Patch-Skript?

Ich erstelle ein Batch-Skript, das eine Textdatei sucht und dann eine angegebene Zeichenfolge in der Datei ersetzt. Das einzige Problem, das ich habe, ist das Festlegen des Pfads der angegebenen Datei. Ich habe versucht, cdden Pfad mit festzulegen, aber es scheint nichts zu bewirken. Funktioniert die Verwendung cdoder muss ich andere oder zusätzliche Parameter verwenden? Hier ist mein aktuelles Skript:

@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

Antwort1

  1. Targetpath hat keine Auswirkung und ist überflüssig.
  2. Powershell sollte bereits über einen Pfadeintrag erreichbar sein.
  3. Das PS-Skript könnte in einen einfachen Befehl eingebettet werden, eine temporäre Datei wäre nicht erforderlich.

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

verwandte Informationen