Powershell 数字符号匹配和重命名项目逻辑
Powershell number notation matches and rename-item logic
在下面的重命名文件的解决方案中,摘自对我的问题 的回答,以下代码的作用是什么?
^\d{4}
e={$Matches[1]}
Rename-item -Newname {"{0:D4} - sp - C - {1}" -f ++$Count.Value,$_.Name}
对于 1。我认为这是一个四位数,但我想了解使用的符号。
对于2.$Matches
没有在任何地方设置,这是Select-Object
特有的变量吗?
对于 3. {0:D4}
和同一字符串末尾的 {1}
是做什么的。此外,此行是否使用逗号分隔符连接两个字符串?
$Count = [Ref][math]::Max(1000,
[int](Get-ChildItem -Path $Folder -Filter *.sql -File|
Where-Object Name -match '^(\d{4}) - sp - C -' |
Select-Object @{n='Count';e={$Matches[1]}} -Last 1).Count)
Get-ChildItem -Path $Folder -Filter *.sql -File |
Where-Object Name -NotMatch '^\d{4} - sp - C - ' |
Rename-item -Newname {"{0:D4} - sp - C - {1}" -f ++$Count.Value,$_.Name}
^\d{4}
是一个 Regular Expression
^
行开始处的锚点
\d
代表一个数字
{4}
是一个量词,正好指定前面的 4 个,这里是 digits
()
括号标记捕获组
引用自Get-Help about_Comparison_Operators
The -Match
and -NotMatch
operators populate the $Matches
automatic variable.
其中 $Matches[1]
表示 RegEx 的第一个捕获组。
Select-Object
从匹配项(4 位数字)构建计算得到的 属性 并且仅使用 last/highest
获得之前使用的最高数字是一个奖励我应该更好地解释第一名。
由于获得的数字现在包含 4 位数字(不再是固定的 1 和三个零),因此 -format
operator(简称为 -f
)用于通过插入变量来构建新文件名代替 {x}
的内容,其中 x 是从零开始的数字。
在下面的重命名文件的解决方案中,摘自对我的问题
^\d{4}
e={$Matches[1]}
Rename-item -Newname {"{0:D4} - sp - C - {1}" -f ++$Count.Value,$_.Name}
对于 1。我认为这是一个四位数,但我想了解使用的符号。
对于2.$Matches
没有在任何地方设置,这是Select-Object
特有的变量吗?
对于 3. {0:D4}
和同一字符串末尾的 {1}
是做什么的。此外,此行是否使用逗号分隔符连接两个字符串?
$Count = [Ref][math]::Max(1000,
[int](Get-ChildItem -Path $Folder -Filter *.sql -File|
Where-Object Name -match '^(\d{4}) - sp - C -' |
Select-Object @{n='Count';e={$Matches[1]}} -Last 1).Count)
Get-ChildItem -Path $Folder -Filter *.sql -File |
Where-Object Name -NotMatch '^\d{4} - sp - C - ' |
Rename-item -Newname {"{0:D4} - sp - C - {1}" -f ++$Count.Value,$_.Name}
^\d{4}
是一个 Regular Expression
^
行开始处的锚点
\d
代表一个数字
{4}
是一个量词,正好指定前面的 4 个,这里是 digits
()
括号标记捕获组引用自
Get-Help about_Comparison_Operators
The
-Match
and-NotMatch
operators populate the$Matches
automatic variable.其中
$Matches[1]
表示 RegEx 的第一个捕获组。
Select-Object
从匹配项(4 位数字)构建计算得到的 属性 并且仅使用 last/highest获得之前使用的最高数字是一个奖励我应该更好地解释第一名。
由于获得的数字现在包含 4 位数字(不再是固定的 1 和三个零),因此-format
operator(简称为-f
)用于通过插入变量来构建新文件名代替{x}
的内容,其中 x 是从零开始的数字。