我想问你是否可以提供建议。
我不知道是否可以批量或数组或类似的方式创建动态变量名称。例如,在 for 循环之前设置 c=0,然后在 for 循环中设置 c = c+1 并使用此数字在 for 循环中创建动态变量名称,例如:set entry%c% = 'somestring'
然后使用这些编号的变量在 for 循环外打印输出,例如:
回声%entry1%
回声%entry2%
例子:
@echo off
set /a c=1
for %%i in (list.txt) do (
set /a c=c+1
set entry%c% = %%i
)
echo %entry1%
echo %entry2%
感谢帮助。
最佳答案
我会用
for /f "tokens=1*delims=[]" %%a in ('find /n /v "" list.txt') do set "entry%%a=%%b"
但警告的话
set entry%c% = %%i
批处理对
SET
中的空格敏感陈述。如果这行得通,它会将名为“entry1Space”的变量设置为“SpacethefirSTLineofthefile”的值。set "var=value"
我使用的语法确保批处理行上的任何尾随空格都不包含在分配给 var
的值中。 .
关于arrays - 批处理脚本 - 在 For 循环中创建动态变量名称或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234994/