Замена символа равенства =
в строке при помощи пакета PowerShell
После тестирования, а затем исследования, я наткнулся на этот ответ на StackOverflow, который также указал на эту ветку и сообщения на DosTips, и заменить его на =
чистый пакет нелегко.
Когда я сталкиваюсь с проблемами с пакетными сценариями, когда требуется тонна сложной пакетной логики или просто не могу понять, как заставить ее работать легко, я обычно пытаюсь включить в микс некоторую PowerShell, поскольку она является родной для Windows и может быть гораздо более надежной. чем партия без сложной логики.
Ниже приведен пакетный скрипт:
- Используйте Get-Content и Replace для строки для поиска и замены
- Затем он будет использовать Set-Content, чтобы поместить вновь замененную строку обратно в файл соответственно.
скрипт
@echo off setlocal enableextensions disabledelayedexpansion set search=OutDir=bin set replace=OutDir=Build set textFile=%DOCUMENT%.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
Результат на выходе
OutDir=Build