如何将表达式的结果存储到 Windows 批处理脚本中的变量中?

How to store the result of the expression into a variable in Windows batch script?

我有 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%%%

变成一个变量。如何做到这一点?

在激活延迟扩展的情况下在每次迭代时设置变量!!

@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!
)