Board logo

标题: [文件操作] 批处理如何批量删除文件名中的特定字符? [打印本页]

作者: 1419646861    时间: 2022-11-12 14:19     标题: 批处理如何批量删除文件名中的特定字符?

比如我的文件是“20.7z.删除解压001”、“20.7z.删除解压002”、“20.7z.删除解压003”这样。有没有什么办法可以快速删除文件名中的“删除解压”这四个字?
作者: pd1    时间: 2022-11-12 15:43

本帖最后由 pd1 于 2022-11-12 15:44 编辑

保存为1.bat
  1. powershell -c "dir |%{ren $_ $_.Name.Replace('删除解压','')}"
复制代码

作者: xczxczxcz    时间: 2022-11-12 16:29

回复 2# pd1


     去掉 %{} 脚本块 更好。

MS - help
  1.     -Path <System.String>
  2.         Specifies the path of the item to rename.
  3.         是否必需?                    True
  4.         位置?                        0
  5.         默认值                None
  6.         是否接受管道输入?            True (ByPropertyName, ByValue)  <#明确可以直接获取管道输入#>
  7.         是否接受通配符?              False
复制代码

作者: xczxczxcz    时间: 2022-11-12 16:40

偶发现PS帮助文档经过 阿三 整理后有些地方不严谨了。很可能出错。
exp:
  1. Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
复制代码
虽然自从阿三掌管MS后几乎不看微软文档了。
作者: Batcher    时间: 2022-11-12 16:53

回复 1# 1419646861


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d "*删除解压*"') do (
  5.     set "OldName=%%i"
  6.     set "NewName=!OldName:删除解压=!"
  7.     ren "!OldName!" "!NewName!"
  8. )
复制代码

作者: 1419646861    时间: 2022-11-12 19:32

回复 5# Batcher


    感谢大佬,回复得非常详细,很有用。
作者: 1419646861    时间: 2022-11-12 19:33

回复 3# xczxczxcz


    感谢众位大佬,非常感谢。
作者: 1419646861    时间: 2022-11-12 19:33

回复 2# pd1


    感谢大佬的用爱发电。谢谢你。
作者: pd1    时间: 2022-11-14 13:00

回复 4# xczxczxcz
可以讲下我那样写有啥弊端吗,刚学




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