Board logo

标题: [文件操作] 【已解决】文件夹的批量重命名,替换特定字符,批处理怎么实现? [打印本页]

作者: hywoow    时间: 2023-9-27 20:58     标题: 【已解决】文件夹的批量重命名,替换特定字符,批处理怎么实现?

本帖最后由 hywoow 于 2023-9-28 19:37 编辑

例如文件夹名称:【三国演义】,重命名为《三国演义》,将符号【替换成《,】替换成》,请问各位大佬如何实现
作者: pd1    时间: 2023-9-27 21:10

  1. powershell -c "dir -Directory|%{Rename-Item $_ $_.Name.Replace('【','《').Replace('】','》')}"
复制代码

作者: Batcher    时间: 2023-9-27 21:45

回复 1# hywoow


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad *【*') do (
  4.     echo 正在处理文件夹 %%i
  5.     set "OldName=%%i"
  6.     setlocal enabledelayedexpansion
  7.     set "NewName=!OldName:【=《!"
  8.     set "NewName=!NewName:】=》!"
  9.     ren "!OldName!" "!NewName!"
  10.     endlocal
  11. )
复制代码

作者: hywoow    时间: 2023-9-27 22:17

回复 2# pd1


    感谢大佬!
作者: hywoow    时间: 2023-9-27 22:23

回复 3# Batcher


    感谢管理,但是有个新的问题,就是文件名的符号改成Unicode字符字符,例如:哈利・波特,改成:哈利 波特,・字符在ANSI格式里保存不了,这种情况如何处理呢
作者: Batcher    时间: 2023-9-28 10:29

回复 5# hywoow


代码另存为UTF-8编码
  1. @echo off
  2. chcp 65001 >nul
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /b /ad *【*') do (
  5.     echo 正在处理文件夹 %%i
  6.     set "OldName=%%i"
  7.     setlocal enabledelayedexpansion
  8.     set "NewName=!OldName:【=《!"
  9.     set "NewName=!NewName:】=》!"
  10.     ren "!OldName!" "!NewName!"
  11.     endlocal
  12. )
复制代码

作者: hywoow    时间: 2023-9-28 19:36

回复 6# Batcher


    谢谢,学到了!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2