使用 powershell DMY -> YMD 更改文件名
Change file names with powershell DMY -> YMD
我必须在 Windows 计算机上更改很多文件,我将使用 Powershell 来完成。
文件名类似于name_name_DDMMYYYY_XXXXXX.bmp
- John_Doe_03062009_123456.bmp
- John_Doe_27122016_567890.bmp
我想让它像 name_name_YYYYMMDD_XXXXXX.bmp
一样排序
- John_Doe_20090603_123456.bmp
- John_Doe_20161227_567890.bmp
我完全是 Powershell 的专家,刚开始将特殊字符替换为无。所以所有帮助都很棒!
您要匹配和重新排序的 8 位数字在下划线之间,因此您可以这样做:
$pattern = '_(\d{2})(\d{2})(\d{4})_'
'John_Doe_03062009_123456.bmp' -replace $pattern, '__'
该模式匹配 3 个捕获组中下划线之间的 8 位数字,因此您可以通过反向引用(</code>、<code>
、</code>)对捕获的子字符串重新排序。</p>
<p>有关 <code>-replace
运算符的更多帮助,请参阅 here. For further help on regular expression syntax see here。 PowerShell 和纯 .Net 之间存在一些细微差别,例如反向引用语法(</code> vs <code>
),但大部分都可以直接应用。
我必须在 Windows 计算机上更改很多文件,我将使用 Powershell 来完成。
文件名类似于name_name_DDMMYYYY_XXXXXX.bmp
- John_Doe_03062009_123456.bmp
- John_Doe_27122016_567890.bmp
我想让它像 name_name_YYYYMMDD_XXXXXX.bmp
一样排序- John_Doe_20090603_123456.bmp
- John_Doe_20161227_567890.bmp
我完全是 Powershell 的专家,刚开始将特殊字符替换为无。所以所有帮助都很棒!
您要匹配和重新排序的 8 位数字在下划线之间,因此您可以这样做:
$pattern = '_(\d{2})(\d{2})(\d{4})_'
'John_Doe_03062009_123456.bmp' -replace $pattern, '__'
该模式匹配 3 个捕获组中下划线之间的 8 位数字,因此您可以通过反向引用(</code>、<code>
、</code>)对捕获的子字符串重新排序。</p>
<p>有关 <code>-replace
运算符的更多帮助,请参阅 here. For further help on regular expression syntax see here。 PowerShell 和纯 .Net 之间存在一些细微差别,例如反向引用语法(</code> vs <code>
),但大部分都可以直接应用。