标题: 【已解决】指定目录,去掉文件名或子文件夹名里的空格 [打印本页]
作者: linfeng_321 时间: 2022-7-30 16:28 标题: 【已解决】指定目录,去掉文件名或子文件夹名里的空格
本帖最后由 linfeng_321 于 2022-7-31 10:45 编辑
需求:指定目录,去掉文件名或子文件夹名里的空格
目录:.\111\222
文件:123 _1.png、ab c_2.png、23 .png、23 4.jpg,等文件名(后缀名不限,xml、webp等等)
子文件夹:123 _1、ab c_2、23 、23 4,等文件夹名
作者: flashercs 时间: 2022-7-30 17:03
- @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- set "rootdir=.\111\222"
- cd /d "%rootdir%"|| exit /b
- for /f "delims=" %%A in ('dir /a /b /s^|sort /r') do (
- set "name=%%~nxA"
- ren "%%A" "!name: =!"
- )
- endlocal
- pause
复制代码
作者: zaqmlp 时间: 2022-7-30 18:52
- <# :
- cls&echo off&cd /d "%~dp0"&mode con lines=5000
- powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
- pause
- exit
- #>
- $folder=@(
- ".\111\222"
- );
-
- for($i=0;$i -lt $folder.length;$i++){
- if(test-path -literal $folder[$i]){
- $files=@(dir -literal $folder[$i] -recurse|sort {$_.FullName.length} -Descending);
- for($j=0;$j -lt $files.length;$j++){
- $fn=$files[$j].Name -replace ' ','';
- $base=$files[$j].BaseName -replace ' ','';
- $filepath=$files[$j].FullName -replace '\\[^\\]+$','';
- if($fn -ne $files[$j].Name){
- $newname=$fn;
- $newfile=$filepath+'\'+$newname;
- $n=2;
- while(test-path -literal $newfile){
- $newname=$fn+'('+$n.ToString()+')';
- if($files[$j] -is [System.IO.FileInfo]){
- $newname=$base+'('+$n.ToString()+')'+$files[$j].Extension;
- }
- $newfile=$filepath+'\'+$newname;
- $n++;
- }
- write-host ($files[$j].FullName+' --> '+$newname);
- rename-item -literal $files[$j].FullName $newname;
- }
- }
- }else{write-host ('"'+$folder[$i]+'" Not Found')}
- }
复制代码
作者: linfeng_321 时间: 2022-7-30 23:19
感谢大佬们,明天我测试下
作者: linfeng_321 时间: 2022-7-31 10:45
回复 2# flashercs
红包已支付
作者: linfeng_321 时间: 2022-7-31 10:45
回复 3# zaqmlp
红包已支付
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |