Powershell 代码重命名的文件具有相同的名称,但是其中一个的第一部分没有被删除?

德里吉维亚斯

我每周都会收到大量文件,这些文件被批量保存到一个文件夹中。在将它们插入软件进行处理之前,我需要删除文件名称的日期方面,这些文件采用以下格式:

20082019AAAA

21082019AAAA

这些文件在同一天收到(例如),并保存到同一文件夹中。

我有一个简单的 PowerShell 代码,它删除了名称的日期前缀

get-childitem *.txt | rename-item -newname { [string]($_.name).substring(8) }

然而,出现了一个问题。

如果此代码要从两个文件中删除前 8 个字符,则两个文件都将被命名为 AAAA

因此,在运行时,文件最终看起来像这样:

AAAA

21082019AAAA

如您所见,只有其中一个文件的日期前缀被删除。

如何修改我的代码,以便在运行时删除前缀,并且如果它找到两个具有相同剩余名称的文件,它将_2向文件添加一个或类似的东西?

这将真正提高效率,因为我可以直接指向文件夹进行自动处理。

亲切的问候

D

用户6811411

虽然我确信复制/移动/重命名增量有很多类似的问题:

## Q:\Test\2019\08\21\SO_57594000.ps1
# create some sample files in current dir
# -2..2|%{ni ('{0}AAAA.txt' -f (Get-Date).AddDays($_).ToString('ddMMyyyy'))}|Out-Null
Get-ChildItem *.txt | Where-Object Name -match '^\d{8}' | ForEach-Object{
    $NewName = ($_.Name -replace '^\d{8}')
    $cnt=0
    while (Test-Path (Join-Path $_.Directory $NewName)){
       $NewName = '{0}_{1}{2}' -f ($_.BaseName -replace '^\d{8}'),++$Cnt,$_.Extension
    }
    Rename-Item -Path $_.FullName -NewName $NewName 
    Write-Host -ForegroundColor Green ('Renamed {0} to {1}' -f $_.Name,$NewName)
}

编辑对这个输出做了一个小的返工:在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用powershell修改JAVA_HOME文件夹路径的一部分

Powershell:将文件的一部分读入变量

跳到PowerShell脚本的另一部分

在Powershell中重命名文件名的一部分

使用PowerShell循环搜索并在文件上替换字符串的两部分,同时保留其中一部分

Powershell脚本获取XML节点内容的一部分

分割路径并仅取出最后一部分(文件名)Powershell

在代码的第一部分之后程序没有继续

替换powershell中变量的一部分而不替换其余部分?

如何使用现有名称的一部分重命名Python中的多个文件?

如何使用Powershell从字符串中删除文本的一部分?

Powershell代码片段的哪一部分使运行时间很长?

重命名Linux中文件名的第一部分?

一个有重复项的列表(按顺序),其中一部分需要转移

如何根据32位或64位版本的PowerShell排除配置文件的一部分

使用重命名命令重命名文件的第一部分

删除网址的第一部分

powershell-获得名称文件夹的一部分

使用XSLT将XML文件转换为另一个XML文件,但是其中一部分代码无法正常工作

使用 if 语句获取文件夹名称的一部分的 powershell 脚本

powershell如何找出一个变量是否是另一个变量的一部分

在powershell中连接csv文件,没有第一行(第一个文件除外)

正则表达式的第一部分没有句点

如何在powershell中打开一个csv并复制其中一列,所以我现在有两列数据相同但名称不同?

PowerShell 使用测试路径比较文件名的一部分

删除路径的第一部分?

powershell - 嵌套 FORLOOPs 以拆分字符串并替换字符串的一部分并删除字符串后的所有内容

PowerShell:删除显示名称的一部分

使用 powershell 从 txt 文件中读取 url 列表,并将每个 url 保存为 pdf,名称来自 url 的最后一部分