gpt4 book ai didi

powershell - 在文件夹名称中添加约4位数年的括号

转载 作者:行者123 更新时间:2023-12-03 01:02:08 24 4
gpt4 key购买 nike

我大约有1,500个文件夹,后4位数字代表一年。我需要在一年左右添加括号,同时保留其余名称。文件夹名称的长度从大约4个字符到20个以上的字符不等。某些文件夹名称包含日期以外的数字。

我找到了一种在文件夹名称的末尾加上括号的方法。
以及从名称开头的特定位置添加括号的方法。但是似乎找不到找到从名称末尾倒数的方法。

Get-ChildItem -Directory | Rename-Item -NewName {$_.Name -replace '^' ,")"}

Get-ChildItem -Directory | % { $_ | Rename-Item -NewName ($_.Name -replace '^([\S\s]{5})', '$1(')}

我想要一个这样的文件夹:

短1990
Long.Folder.name.2019
文件夹1.1998

并以以下文件夹名称结尾:

矮人(1990)
Long.Folder.name。(2019)
文件夹1.(1998)

最佳答案

尝试以下-replace操作:

PS> 'Short.1990', 'Long.Folder.name.2019' -replace '\.(\d{4})$', '.($1)'
Short.(1990)
Long.Folder.name.(2019)

在您的命令上下文中:
Get-ChildItem -Directory |
Rename-Item -NewName { $_.Name -replace '\.(\d{4})$', '.($1)' } -WhatIf

... -replace '\.(\d{4})$', '.($1)'解释:
  • 正则表达式\.(\d{4})$与文字.(转义为\.)相匹配,然后在输入(文件名)的末尾(\d{4})后跟4位数字($)。
  • \d{4}括在(...)中会创建一个捕获组,以捕获匹配的特定数字,因此可以在替换操作数中将它们称为$1(第一个捕获组的值)。
  • 替换表达式'.($1)'用文字.替换正则表达式整体匹配的内容,然后替换为文字$1中捕获的4位数字序列((...))。
  • 有关-replace运算符的全面概述,请参见this answer
  • 关于powershell - 在文件夹名称中添加约4位数年的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582406/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com