Как сохранить результат выражения в переменную в пакетном скрипте Windows?

У меня есть пакетный скрипт Windows, который заменяет \ от _,

Я хочу знать, что нужно для сохранения результата выражения замены в переменную?

Ниже приведен сценарий, который у меня есть.

FOR /F "tokens=* delims=" %%x in (E:\Windows_Scripts\server.txt) DO (
    Set "servername=%%x" 
    Set "Pattern=\" 
    Set "Replace=_" 

    call echo %%servername:%Pattern%=%Replace%%%
)

Я хочу сохранить результат выражения ниже

%%servername:%Pattern%=%Replace%%%

в переменную. Как это может быть сделано?

1 ответ

Решение

Установите переменную на каждой итерации с активированным отложенным расширением!!

@echo off
setlocal enabledelayedexpansion

Set "Pattern=\"
Set "Replace=_"

FOR /F "tokens=*" %%x in (server.txt) DO (
  Set "servername=%%x"
  Set "$output=!servername:%Pattern%=%Replace%!"
  echo !$output!
)
Другие вопросы по тегам