Substituindo o símbolo igual =
em uma seqüência de caracteres por lote usando o PowerShell
Depois de testar e, em seguida, pesquisar depois, cheguei esta resposta em StackOverflow que então também apontou para este tópico e posts em DosTips e substituindo o =
por lote puro não é fácil.
Quando me deparo com problemas com scripts em lote, onde é necessária uma grande quantidade de lógica de lote complexa ou simplesmente não consigo descobrir como fazer isso funcionar facilmente, geralmente tento incorporar alguns PowerShell à mistura desde ele é Windows nativo e pode ser muito mais robusto do que lote sem lógica complexa.
The below batch script will essentially:
- Use Get-Content and Replace for the string to search and replace
- Then it will use Set-Content to put the newly replaced string back into the file accordingly
Script
@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
Resultado da saída
OutDir=Build