Arrays 在批处理文件中迭代数组
我正在编写一个批处理文件()来迭代终端服务器,搜索特定用户。所以,我得到了我要做的基本开始Arrays 在批处理文件中迭代数组,arrays,loops,batch-file,terminal-services,Arrays,Loops,Batch File,Terminal Services,我正在编写一个批处理文件()来迭代终端服务器,搜索特定用户。所以,我得到了我要做的基本开始 输入用户名 迭代终端服务器 显示找到用户的服务器(根据连接丢失的方式,可以在多个服务器上找到这些服务器) 显示选项菜单 迭代我拥有的终端服务器: for /f "tokens=1" %%Q in ('query termserver') do (set __TermServers.%%Q) 现在,我得到了错误 Environment variable __TermServers.SERVER1 not
for /f "tokens=1" %%Q in ('query termserver') do (set __TermServers.%%Q)
现在,我得到了错误
Environment variable __TermServers.SERVER1 not defined
…对于每个终端服务器。这是目前我的批处理文件中唯一的内容。你知道为什么会发生这种错误吗?显然,变量没有定义,但我理解SET命令就是这样做的
我还认为,为了继续进行迭代(每个终端服务器),我需要做如下工作:
:Search
for /f "tokens=1" %%Q in ('query termserver') do (call Process)
goto Break
:Process
for /f "tokens=1" %%U in ('query user %%username%% /server:%%Q') do (set __UserConnection = %%C)
goto Search
然而,有两件事让我感到困扰:
注意:我将继续回答关于超级用户的这一行问题,除了它似乎更深入地了解编程细节。好的,这些问题/问题/等等。在一个:-) 我还是不太明白你的剧本到底要写什么 首先,
set
命令的语法是
set <variable name>=<value>
不过,在你的情况下,你可能想要别的东西。批处理文件中没有数组本身,您可以通过创建大量变量并在某处保留计数来模拟它们。我已经写过了(现在有点过时,但仍然有效)
在您的例子中,您希望迭代多个服务器,并为每个服务器迭代多个用户。可以使用嵌套循环执行此操作:
for /f "tokens=1" %%Q in ('query termserver') do (
for /f "tokens=1" %%U in ('query user ... /server:%%Q' do (
...
)
)
关于你的两个问题:
for ... in (...) do call Process %%Q
然后,您可以使用子例程中的%1
访问它。老实说,在大多数情况下,我认为嵌套循环更容易阅读set
语法是
set variable=value
请注意,=
符号周围没有空格。如果有,则在变量名称的末尾或值的开头有一个空格:
> set foo = bar
> echo %foo%
%foo%
> echo %foo %
bar
好的,这些都是相当多的问题 我还是不太明白你的剧本到底要写什么 首先,
set
命令的语法是
set <variable name>=<value>
不过,在你的情况下,你可能想要别的东西。批处理文件中没有数组本身,您可以通过创建大量变量并在某处保留计数来模拟它们。我已经写过了(现在有点过时,但仍然有效)
在您的例子中,您希望迭代多个服务器,并为每个服务器迭代多个用户。可以使用嵌套循环执行此操作:
for /f "tokens=1" %%Q in ('query termserver') do (
for /f "tokens=1" %%U in ('query user ... /server:%%Q' do (
...
)
)
关于你的两个问题:
for ... in (...) do call Process %%Q
然后,您可以使用子例程中的%1
访问它。老实说,在大多数情况下,我认为嵌套循环更容易阅读set
语法是
set variable=value
请注意,=
符号周围没有空格。如果有,则在变量名称的末尾或值的开头有一个空格:
> set foo = bar
> echo %foo%
%foo%
> echo %foo %
bar
+1和检查:出色的描述和解释。如果我能多次投票,我会的。我还没有在互联网上找到一个提供好信息和完整示例的优秀资源。再一次,太棒了+1和检查:出色的描述和解释。如果我能多次投票,我会的。我还没有在互联网上找到一个提供好信息和完整示例的优秀资源。再一次,太棒了!!!