找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24056|回复: 4

[文件操作] 批处理怎么把文件/文件夹名称中的数字之间的.号给替换成-号?

[复制链接]
发表于 2020-2-5 19:45:11 | 显示全部楼层 |阅读模式
只把数字之间的.号替换成-号,字母中间.号不作替换。

还有文件扩展名的.号不能替换。

比如把文件/文件夹名称A.B.C 12.13.14改成A.B.C 12-13-14

这个该怎么写?
发表于 2020-2-5 22:08:54 | 显示全部楼层
  1. <#*,:&cls
  2. @echo off
  3. pushd "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath "%~0" -ReadCount 0 | Out-String ))) "
  5. popd
  6. pause
  7. exit /b
  8. #>
  9. # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称 数字之间的.号给替换成-号
  10. Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
  11.   $re = [regex]'(?<=\d)\.+(?=\d)'
  12. } -Process {
  13.   $newName = $re.Replace($_.BaseName, '-')
  14.   if ($newName -cne $_.BaseName) {
  15.     # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName -Verbose
  16.     # $_.MoveTo($newName)
  17.     cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
  18.   }
  19. }
复制代码
 楼主| 发表于 2020-2-5 23:01:56 | 显示全部楼层
回复 2# flashercs


   老哥,这个代码运行后
   文件名更改后正常的,变成 A.B.C 12-13-14
   但是文件夹的名字变成了    A.B.C 12-13-14.14 (后面多了一个.14)
   如果是一个代码同时更改文件和文件夹名不好实现,写成两个代码一个修改文件名的,一个修改文件夹名也行。我运行两次就可以了。
  麻烦您了
发表于 2020-2-5 23:59:54 | 显示全部楼层
回复 3# itunesis
  1. <#*,:&cls
  2. @echo off
  3. pushd "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath "%~0" -ReadCount 0 | Out-String ))) "
  5. popd
  6. pause
  7. exit /b
  8. #>
  9. # 我想让目录下的文件/文件夹(包含子文件夹)的全部文件和文件夹的名称 数字之间的.号给替换成-号
  10. Get-ChildItem -Path . -Filter * -Recurse | ForEach-Object -Begin {
  11.   $re = [regex]'(?<=\d)\.+(?=\d)'
  12. } -Process {
  13.   $baseName = $_.PSChildName.Substring(0, $_.PSChildName.Length - $_.Extension.Length)
  14.   $newName = $re.Replace($baseName, '-')
  15.   if ($newName -cne $_.BaseName) {
  16.     # Rename-Item -Path ($_.FullName -replace '[\[\]]', '`$&') -NewName $newName -Verbose
  17.     # $_.MoveTo($newName)
  18.     cmd.exe /c "ren `"$($_.FullName)`" `"$newName$($_.Extension)`""
  19.   }
  20. }
复制代码
 楼主| 发表于 2020-2-6 20:40:44 | 显示全部楼层
回复 4# flashercs


    大神这次运行后文件夹名称从A.B.C 12.13.14 变成了A.B.C 12-13.14 (最后一个.号没有更改成功)
   大神,如果同时更改不好写,就写一个处理文件的就可以了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:48 , Processed in 0.013602 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表