当前位置: 首页 > news >正文

cmd命令之for循环

在 Windows 系统中,命令提示符(CMD)和 PowerShell 都支持for循环,但语法差异较大。以下是两者的详细说明:

1. 命令提示符(CMD)中的for循环

CMD 的for循环有多种变体,适用于不同场景:

① 遍历文件或目录

for %变量 in (文件模式) do 命令

 

  • 示例:遍历当前目录下所有.txt文件并显示文件名:

    for %f in (*.txt) do echo %f
    

    在批处理文件中需将%改为%%

    for %%f in (*.txt) do echo %%f
    
  • 参数说明

    • %变量:自定义变量名,如%f%i
    • (文件模式):支持通配符*?,如*.exedata?.txt

② 遍历数字序列

需结合/L参数:

 

for /L %变量 in (起始,步长,结束) do 命令

 

  • 示例:输出 1 到 5 的数字:

     

    for /L %i in (1,1,5) do echo %i
    

    批处理文件中:

     

    for /L %%i in (1,1,5) do echo %%i
    

③ 遍历命令输出

需结合/F参数:

for /F "选项" %变量 in ('命令') do 命令

 

  • 示例:遍历当前目录下的文件并显示大小:
    for /F "tokens=5,9" %a in ('dir') do echo %a %b
    
    • tokens=5,9:提取第 5 和第 9 列数据(大小和文件名)。

2. PowerShell 中的for循环

PowerShell 的语法更接近编程语言,支持两种主要写法:

① 标准for循环(类 C 语法)

for ($变量=初始值; 条件; 更新) { 命令 }

 

  • 示例:输出 1 到 5 的平方:
    for ($i=1; $i -le 5; $i++) {Write-Host ($i * $i)
    }
    

② foreach循环(遍历集合)

foreach ($变量 in 集合) { 命令 }

 

  • 示例:遍历数组并打印元素:
    $numbers = 1, 2, 3, 4, 5
    foreach ($num in $numbers) {Write-Host $num
    }
    

3. 常见场景对比

场景CMD 语法示例PowerShell 语法示例
遍历文件for %f in (*.txt) do echo %fGet-ChildItem *.txt | ForEach-Object { $_.Name }
遍历数字for /L %i in (1,1,5) do echo %ifor ($i=1; $i -le 5; $i++) { Write-Host $i }
遍历命令输出for /F %a in ('dir /b') do echo %adir /b | ForEach-Object { $_ }

注意事项

  • CMD 与 PowerShell 的区别
    • CMD 是 Windows 传统命令行,语法简单但功能有限。
    • PowerShell 是现代替代方案,支持面向对象、管道和高级脚本。
  • 批处理文件中的变量:在.bat.cmd文件中,CMD 的for变量需用双%%(如%%i)。
  • 特殊字符:若命令中包含特殊字符(如&|),需用^转义(CMD 中)。

 

根据需求选择合适的语法,PowerShell 通常更适合复杂脚本,而 CMD 适用于简单任务。

 

http://www.dtcms.com/a/276808.html

相关文章:

  • 深入理解-ConcurrentHashMap:JDK-1-7-与-1-8-的演进与实现原理
  • 管理端口: 一个简单的锤子架子
  • JavaSE常用类
  • 《Spring 中上下文传递的那些事儿》Part 11:上下文传递最佳实践总结与架构演进方向
  • Linux反弹shell的几种方式
  • 【leetcode】709. 转换成小写字母
  • 直播录屏技术揭秘:以抖音直播录屏为例
  • 【嘉立创】四层板设计
  • 如何搭建一个高质量的开放接口平台
  • 数据结构与算法之美:线索二叉树
  • 【Scratch】从入门到放弃(四):指令大全-九大类之事件、控制、侦测
  • 解释全连接层的“参数数量”和“计算过程”,保证像看动画片一样直观~
  • c++反射实现
  • # 打开【设备和打印机】菜单时显示成新式【打印机和扫描仪】菜单,怎么才能显示传统带打印机图标菜单?
  • batchnorm类
  • 【DIY小记】逸剑风云决烟尘回响+武家旧事+碧海仙踪DLC攻略整合
  • 哈希扩展 --- 位图
  • 专业硬件检测工具 AIDA64 Extreme V7.70.7500 至尊版
  • Sentry 集成
  • 基于51单片机的超声波智能避障小车仿真
  • YOLOv11 vs 前代模型:全面性能对比与分析
  • 蒙特卡洛树搜索方法实践
  • 系统性学习C语言-第十五讲-深入理解指针(5)
  • matplotlib:多个图表的绘制
  • RocketMQ-
  • 69 局部变量的空间分配
  • 系统引导修复
  • 功耗校准数据PowerProfile测试方法建议
  • (一)一阶数字低通滤波器---原理及其推导
  • 程序改错---字符串