我有40个.txt文件,这些文件以我的40个用户计算机命名,每个.txt文件包含一个用户AD帐户。以下bat脚本非常适合将广告帐户注入管理员组。
mkdir "c:\newtemp\a_accounts"
xcopy "\\SERVERNAME\FOLDER\a_accounts\%computername%.txt" "c:\newtemp\a_accounts"
for /f "usebackq" %%X in ("c:\newtest\a_accounts\delete\%computername%.txt") do (NET LOCALGROUP ADMINISTRATORS %%X /add)
但是,如果我创建一个新的bat文件并将开关从/ add添加到/ delete它对新脚本不起作用。我必须使用上面的脚本才能从本地管理员组中删除其他用户。
mkdir "c:\newtemp\delete_user_admin"
xcopy "\\SERVERNAME\FOLDER\delete_user_admin\%computername%.txt" "c:\newtemp\delete_user_admin"
For /F "usebackq" %%G IN ("c:\newtemp\delete_user_admin\%computername%.txt") DO (NET LOCALGROUP ADMINISTRATORS %%G /delete)
当for / f运行时,它不会做任何事情(也没有错误。它只显示该行)。令我震惊的是它为什么会这样做。我尝试将变量从X更改为另一个字母,但这没有什么不同。任何线索为什么会发生这种情况?
好的,看起来变量没有在文件中提取用户名。我刚用我的广告用户名替换了第二个%% G并运行了脚本,并从本地管理员中删除了我的帐户。现在要弄清楚为什么for / f不起作用。看看网站我正在使用正确的行。
2016年7月17日
是的,我完全踩到了为什么这不起作用。在.bat中将两条线放在一起,然后发生以下情况。
这很好用。
for /f "usebackq" %%X in ("c:\newtemp\a_accounts\%computername%.txt") do (NET LOCALGROUP ADMINISTRATORS %%X /add)
但是,如果我更改了它破坏的文件夹(没有任何错误只是看起来像是在运行该行而不会产生任何内容。
for /f "usebackq" %%X in ("c:\newtemp\a_accounts2\%computername%.txt") do (NET LOCALGROUP ADMINISTRATORS %%X /delete)
如果我进入.bat文件并编辑第二行指向第一个文件夹“a_accounts”并翻转/添加/删除该行正常工作!!!什么都没有意义。除非有人得到答案,否则我已经失去了能够理解为什么它不能正常工作的希望。
答案 0 :(得分:0)
您已从c:\newtemp\delete_user_admin\%computername%
"c:\newtemp\delete_user_admin\%computername%.txt"
这些不一样。
答案 1 :(得分:0)
我在生活中看到的奇怪的东西。如果我从工作脚本复制txt文件并修改名称第二行工作!什么!!!!??没有任何意义,但我按照我想要的方式工作。