如何自动化批量执行命令,从TXT列表读取计算机名自动代入参数?
Windows 批处理实现方案
首先准备两个文件放在同一目录下:
- 计算机名列表文件,命名为
computers.txt,每行填写一个目标计算机名,无多余符号 - 批处理执行脚本,命名为
auto_run.bat,内容如下:
@echo off for /f "delims=" %%i in (computers.txt) do ( echo 正在处理设备:%%i sc \\%%i query box sc \\%%i start box sc \\%%i query crystal sc \\%%i start crystal taskkill /s %%i /im crystal.exe /f taskkill /s %%i /im box.exe /f echo ======================== ) pause
批处理使用说明
- 运行脚本的账号必须拥有所有目标计算机的管理员权限,否则服务操作和杀进程操作会被拒绝
- 如果
computers.txt存放在其他路径,把脚本里的(computers.txt)替换为完整路径即可,例如("D:\list\computers.txt") - 如果需要留存执行日志,把脚本第一行改为
@echo off > exec_log.txt 2>&1,所有输出会自动存入同目录的exec_log.txt文件
PowerShell 可选实现方案
如果你偏好使用PowerShell,可使用如下脚本,保存为auto_run.ps1:
$pcList = Get-Content -Path ".\computers.txt" foreach ($pc in $pcList) { Write-Host "正在处理设备:$pc" sc \\$pc query box sc \\$pc start box sc \\$pc query crystal sc \\$pc start crystal taskkill /s $pc /im crystal.exe /f taskkill /s $pc /im box.exe /f Write-Host "========================" }
PowerShell使用说明
- 首次运行PowerShell脚本需要先以管理员身份打开PowerShell,执行
Set-ExecutionPolicy RemoteSigned,输入Y确认后即可正常运行脚本 - 同样要求运行账号具备目标设备的管理员权限
内容的提问来源于stack exchange,提问作者Fcarias38
相关产品推荐
相关产品推荐

