如何从 FOR 循环中批量将某些内容分配给全局变量

Ser*_*gio 3 for-loop global-variables batch-file

我有一些代码,从文件中获取一些字符串并将其分配给某个变量。该变量将在文件中用于不同目的:

setlocal EnableDelayedExpansion
FOR /F "tokens=* USEBACKQ" %%F IN (`file.txt`) DO SET var1=%%F
endlocal
echo %var1%
Run Code Online (Sandbox Code Playgroud)

我变得空虚var1。如何提取字符串并在不同的地方将其用于我的目的?

Ger*_*ard 5

试试这个。

@echo off
Setlocal EnableDelayedExpansion
For /F "tokens=* USEBACKQ" %%F IN ("file.txt") DO Set "var1=!var1!%%F"
Echo !var1!
Run Code Online (Sandbox Code Playgroud)

只是不要endlocal按照上面的方式执行,因为一旦脚本存在它就会结束本地。但是,如果您想对循环外字符串中的每一行执行此操作,最好改为调用子例程。