Board logo

标题: [文件操作] 如何批量去除文件名中的中文字符保留 空格、英文 数字和符号 [打印本页]

作者: 溜溜看看    时间: 2018-12-1 18:33     标题: 如何批量去除文件名中的中文字符保留 空格、英文 数字和符号

本帖最后由 溜溜看看 于 2018-12-1 18:47 编辑

如何批量去除当前文件夹和下层目录中的文件 文件名中的中文字符保留 空格、数字、英文和符号。  文件格式 比如 txt  avi  zip 等等    谢谢了先
作者: xczxczxcz    时间: 2018-12-3 13:04

回复 1# 溜溜看看

一、文件格式:.txt .avi .zip 你可也以自己加入其它格式。
二、文件名为全中文(含中文符号)不修改,系统不允许空名称的文件名。
三、去除中文后有重名的不修改,系统不允许重名。
三、WIN7系统默认PS2.0未测试,理论上PS4.0以上全支持。
四、纯P,用FINDSTR 加 more 计算偏移也可以,但速度慢,还可能受特殊符号影响,故不写纯P,需要可写。
五、用 \xa1-\xff 的编码范围总有漏网。所有用计算字节方法。
------中文符号也是中文,会一并去掉----------------------
  1. @Echo off & cd/d "%~dp0"
  2. PowerShell "$ErrorActionPreference='SilentlyContinue';Get-ChildItem '.\*' -include *.txt,*.avi,*.zip -Recurse|%%{$Name=$Null;ForEach($i in $_.BaseName.toCharArray()){if ([byte][char]\"$i\"){$Name=[string]$Name+[string]$i};};Rename-Item -Path $_.FullName -NewName ([string]$Name+$_.Extension) -Force;if($?){Write-Host '  原名'$_.FullName;Write-Host '改成:'($Name+$_.Extension) -fore Magenta;};}"
  3. pause
复制代码
=======其实还有更好的方法,但PS2.0有可能不支持================




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