【发布时间】:2021-12-30 09:48:30
【问题描述】:
我在 Virtual Box 虚拟机上运行 Windows 10。我的主机是运行 Windows 11 的 ASUS F515J。
我正在编写一个批处理文件,我希望将net user 命令的每一行输出保存到一个单独的变量中。基本上,在以下屏幕截图中,我希望将红色矩形周围的每一行保存为单独的变量,例如%userline1%、%userline2% 等:
The screenshot
(我知道在批处理文件中,我需要写%% 而不是%)
for 命令真的让我很困惑,我以前从未使用过它,所以当你编写命令时,请尽可能清楚地说明我需要用我自己的变量替换你的代码的哪一部分, net user等
提前致谢!
【问题讨论】:
-
能否请您edit 提出您的问题并尝试解释实际的最终目的是什么?我不确定将输出的每一行保存到单独的变量中是否有什么目的,因为我设想您需要执行进一步的解析和排除这些以隔离域名和每个单独的帐户名称. (您实际上并不需要一个变量,例如
%userline2%/%userlist2%来包含一系列-字符!) -
目的是有一个批处理文件来停用除当前处于活动状态的用户帐户之外的所有用户帐户。将每一行保存为变量后,我会执行以下操作来提取用户名:` set account1=%userline3:~0,25% set account2=%userline3:~25,25% ` etc. 额外的空格在用户名后面直到达到 25 个字符都不是问题,当我执行以下操作以停用所有其他帐户时 net 命令仍然可以正常工作:`net user %account1% /active:no net user %account2% /active:no`等等然后我会这样做:net user %username% /active:yes
-
IMO 那么你就大错特错了,尤其是当列出的一些帐户可能已经被禁用/停用时。 net.exe 实用程序肯定不是我将用于该任务的东西。
标签: batch-file cmd command-prompt