You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何为数组每个元素拼接扩展名?原有写法未生效如何解决?

PowerShell文件名批量追加扩展名实现方案

错误原因

原有代码失效存在两个问题:

  1. 没有将待遍历的数组$list1通过管道传给ForEach-Object(%为其别名),导致循环没有对应的迭代数据源
  2. 循环脚本块中调用了数组$list1的整体Name属性,而非当前迭代的单个元素属性,ForEach-Object语法中需要使用$_指代当前迭代的单个对象

正确实现方式

以下几种写法均可实现需求:

  • 写法1:管道遍历对象直接拼接
$list2 = $list1 | ForEach-Object { $_.Name + ".txt" }
  • 写法2:先提取名称属性再批量处理(成员枚举写法,语法更简洁)
$list2 = $list1.Name | ForEach-Object { $_ + ".txt" }
  • 写法3:字符串格式化拼接(适合复杂文件名规则场景)
$list2 = $list1 | ForEach-Object { "{0}.txt" -f $_.Name }

执行以上任意一种写法后,$list2即为包含test1.txt、test2.txt的目标数组。

内容的提问来源于stack exchange,提问作者user310291

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:45:03