标题: [文件操作] 批处理怎么把文件/文件夹名称中的数字之间的.号给替换成-号? [打印本页]
作者: itunesis 时间: 2020-2-5 19:45 标题: 批处理怎么把文件/文件夹名称中的数字之间的.号给替换成-号?
只把数字之间的.号替换成-号,字母中间.号不作替换。
还有文件扩展名的.号不能替换。
比如把文件/文件夹名称A.B.C 12.13.14改成A.B.C 12-13-14
这个该怎么写?
作者: flashercs 时间: 2020-2-5 22:08
- <#*,:&cls
- @echo off
- pushd "%~dp0"
- powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
- popd
- pause
- exit /b
- #>
- # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称 数字之间的.号给替换成-号
- Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
- $re = [regex]'(?<=\d)\.+(?=\d)'
- } -Process {
- $newName = $re.Replace($_.BaseName, '-')
- if ($newName -cne $_.BaseName) {
- # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName -Verbose
- # $_.MoveTo($newName)
- cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
- }
- }
复制代码
作者: itunesis 时间: 2020-2-5 23:01
回复 2# flashercs
老哥,这个代码运行后
文件名更改后正常的,变成 A.B.C 12-13-14
但是文件夹的名字变成了 A.B.C 12-13-14.14 (后面多了一个.14)
如果是一个代码同时更改文件和文件夹名不好实现,写成两个代码一个修改文件名的,一个修改文件夹名也行。我运行两次就可以了。
麻烦您了
作者: flashercs 时间: 2020-2-5 23:59
回复 3# itunesis - <#*,:&cls
- @echo off
- pushd "%~dp0"
- powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
- popd
- pause
- exit /b
- #>
- # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称 数字之间的.号给替换成-号
- Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
- $re = [regex]'(?<=\d)\.+(?=\d)'
- } -Process {
- $baseName = $_.PSChildName.Substring(0, $_.PSChildName.Length - $_.Extension.Length)
- $newName = $re.Replace($baseName, '-')
- if ($newName -cne $_.BaseName) {
- # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName -Verbose
- # $_.MoveTo($newName)
- cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
- }
- }
复制代码
作者: itunesis 时间: 2020-2-6 20:40
回复 4# flashercs
大神这次运行后文件夹名称从A.B.C 12.13.14 变成了A.B.C 12-13.14 (最后一个.号没有更改成功)
大神,如果同时更改不好写,就写一个处理文件的就可以了.
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |