批处理脚本-循环遍历文本文件并将每行设置为变量并运行脚本,然后对下一行重复

时间:2020-04-10 14:50:51

标签: loops batch-file

我已经尝试创建此脚本-

它没有按我的需要循环播放。似乎只在抓取文件的最后一行?

我有一个文本文件,其中包含多个计算机名称,每行一个...我需要将第1行设置为变量,回显该行,然后运行一行代码,然后将第2行设置为变量,回显该行,然后运行代码,然后遍历其余部分,并在所有行结束时显示“完成” ...

感谢您的协助。我已经搜索了Stack Overflow,发现了类似的问题并给出了答案,但由于我希望它们起作用,所以没有一个起作用。

@Echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%f in (computernames.txt) do (
  set compname=%%f
    echo !compname!
)
echo %compname%
REG ADD "\\%compname%\HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v "fDenyTSConnections" /t REG_DWORD /d 0 /f

pause

1 个答案:

答案 0 :(得分:3)

您的脚本的确捕获了文件中的每一行,但是您仅在循环结束时才回显结果(因此仅最后一行)。

首先,在循环内回显%%f以查看所有计算机名称。 然后,您还必须在循环内移动注册表代码。您可以只使用%%f

@Echo off
for /f "tokens=*" %%f in (computernames.txt) do (
  echo %%f
REG ADD "\\%%f\HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v "fDenyTSConnections" /t REG_DWORD /d 0 /f
)