首页/系统/Windows 运维速查/场景:批处理脚本迁移到 PowerShell
本包目录(413 条)
CMD 常用命令74 条
PowerShell 基础66 条
网络排查41 条服务与进程42 条磁盘与文件43 条用户与权限34 条AD 域与组策略39 条日志与事件38 条远程管理36 条

场景:批处理脚本迁移到 PowerShell

把传统 bat 的常见写法换成 PowerShell 等价形式:从 for 批处理到对象管道,逐项对照迁移。

Windows 运维速查系统更新于 2026-10-12

常见对照

批处理写法PowerShell 等价
for %%f in (*.log) do ...Get-ChildItem *.log | ForEach-Object { ... }
if exist fileif (Test-Path file) { }
findstr /s /i key *.*Select-String -Path *.* -Pattern key -SimpleMatch
set /a n+=1$n++ 或 $n += 1
%ERRORLEVEL%$LASTEXITCODE 与 $?

常用示例

常用示例
# 统计 D:\Logs 下今天修改过的文件数
(Get-ChildItem D:\Logs -File | Where-Object LastWriteTime -gt (Get-Date).Date).Count
迁移注意:$LASTEXITCODE 只反映外部命令退出码;内部命令成败看 $? 与错误流。

易错点

  • 直接照搬 bat 的字符串处理会让脚本脆弱,用对象管道重写更可靠
  • del/rd 换成 Remove-Item 后要重新评估 -Recurse 影响范围

数据来源与参考

  • Microsoft Learn:about_Automatic_Variables
  • Microsoft Learn:about_ForEach-Object

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌