Windows PowerShell批处理文件重命名

坦达

当前,我手动浏览每个文件并使用通用重命名过程对其进行更新。
我只是开始尝试弄清楚如何使用Windows PowerShell来重命名具有通用结构的文件。问题是,我见过的所有示例都使用通用扩展替换某些内容。我想删除扩展名后的所有内容,并且出现错误。

例子:

[email protected]_BATCHES.20150108073838322
[email protected]_BATCHES.20150108073534804

我希望最终得到的是:

64244350.NSFM3V
64244882.NSFM3V

.NSFM3V是所有文件中的常见因素,但是前后存在随机性。这是我在PowerShell中创建内容的第一次尝试:

Get-ChildItem *.NSFM3V* | Rename-Item -NewName {$_name -Replace *.{$_name}.*,""}

我的Get-ChildItem .NSFM3V可以从文件夹中获取所有文件,但是我无法将其重命名。

谢谢你的时间!

arco444

您可以这样做:

gci *.NSFM3V* | rename-item -newname { $_.name -replace '(.*)@.*', '$1' }

使用正则表达式获取的左侧,@并在替换中使用它。

解释:

  • 任何匹配都从gci传递到管道,传递的对象被赋予特殊变量$_
  • Rename-Item$_从管道中获取对象,并使用内部的替换{..}来制作新名称
  • 内的正则表达式-replace采用name对象属性并应用替换
  • (.*)意味着匹配任何东西注意方括号,这些很重要,因为它们构成了一个捕获小组
  • @.*表示匹配@后跟任何内容
  • 这意味着当组合在一起时,捕获任何东西,@然后再捕获任何东西
  • '$1'是对捕获组的引用,因此从本质上讲,您将整个$_.name替换为(最后一个)为止的所有值,@并将其传递给-NewName参数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重命名文件模式Windows批处理

windows的批处理文件使用固定部分添加渐进数重命名多个文件夹

通过Windows 7 Scheduler运行批处理文件以重命名网络驱动器上的文件夹

获取 Windows 批处理文件以根据通配符匹配的内容重命名文本文件

Bash脚本:重命名批处理文件以删除/更改Windows文件系统下所有非法字符

使用powershell编辑Windows批处理文件中的文件

将Powershell变量传递到Windows批处理文件

Windows批处理文件处理-循环

从GNUMakeFile调用Windows批处理文件

从Windows批处理文件调用SUBST

Windows批处理文件的隐藏功能

Windows批处理文件:.bat与.cmd?

Windows curl批处理文件

Windows批处理文件Modulo划分

.txt 与 Windows 激活(批处理文件)

多行Windows批处理文件问题

Windows批处理文件执行错误

批处理文件重命名与Python

如何重命名批处理文件

仅保留 txt 文件中包含某个单词/字符的行(Powershell)(Windows 批处理文件)

使用Windows cmd或批处理脚本按照条形码重命名文件

Windows批处理-重命名带有扩展名的文件

递归批量重命名文件扩展名(Windows批处理)

如何在 Windows 中使用批处理重命名文件夹?

Windows批处理脚本重命名具有随机名称的文件?

如何将12个随机jpg复制到文件夹中并通过批处理或Powershell快速重命名(Windows 10 Spotlight相关)

通过批处理文件运行PowerShell [System.windows.forms.messagebox],而不会显示cmd窗口

如何从Windows批处理文件中的PowerShell中正确设置变量?

如何检测是否通过Windows启动事件运行了调用powershell脚本的批处理文件