batch-file - 如何在来自 LOCALGROUP 的 win cmd bat 上迭代特定组
问题描述
#1
for %%r in ("users" "admin" "guest" ) do (
IF ( NET LOCALGROUP | FIND /i %%r > nul ) (
netsh http add urlacl url=http://127.0.0.1:%i%/ user=%%r
)
)
#2
for %%r in ("users" "admin" "guest" ) do (
NET LOCALGROUP | FIND /i %%r > nul && goto GroupExists
goto NextGroup
:GroupExists
echo do somethings ...
:NextGroup
)
我尝试了两种方法都没有成功。#1 我不能IF
只为列表中的 3 个组添加和执行特定命令。我只想为这些组打开一个特定的端口
我也尝试#2,但是 for 循环中的 goto 取消了循环:-(
知道如何解决吗?提前致谢!
解决方案
使用以下命令:
powershell -NoLogo -NoProfile -File 'C:\src\t\Get-ThreeGroups.ps1
=== Get-ThreeGroups.ps1
Get-LocalGroup -Name @('guests','users','administrators') -ErrorAction SilentlyContinue|
& doit.exe $_.Name
如果您不想拥有 .ps1 文件,可以在 .bat 文件脚本中使用它。
powershell -NoLogo -NoProfile -Command ^
"Get-LocalGroup -Name @('guests','users','administrators') -ErrorAction SilentlyContinue|" ^
"& doit.exe $_.Name"
推荐阅读
- python - python中是否有任何用于定点转换和操作的模块?
- c# - c# - 如何仅反序列化部分xml文件
- c# - 当连接字符串在自定义配置文件中时,实体框架迁移失败
- html - 如何在边框后面创建阴影?
- cplex - 如何使用 C++ 在 Concert 技术中使用 MPS 文件
- javascript - 如何防止数组中的重复项?
- javascript - Jquery 只获取一个动态输入值而不是多个动态输入值
- android - 如何区分应用程序重新启动与应用程序从后台恢复
- javascript - React webpack 生产版本无法启动
- c# - ASP.NET Core 整洁 if/else 取决于对象是否已初始化?