各路批处理大神,有多个文件夹,其中某些文件夹里面某些文件名有空格,我想批量去除某些文件名的空格?

如题所述

批量去除文件名中空格的方法:

下载工具:优速文件批量重命名软件

首先,我们在电脑上下载工具,安装好后打开使用。点击下图中的【添加文件】将文件名有空格的文件全部添加到软件中,任何文件都可添加。

然后,是最重要的设置环节,文件的命名方式选择“替换”;查找内容右边方框内输入一个空格;这时候在右边就能预览到所有新文件名中已经没有了空格。

最后,就可以点击软件右上角的【开始重命名】按钮了,让软件处理完成后软件会弹出“重命名成功”的提示,软件的处理时间看文件数量,建议每次处理不要超过500个文件。

最后,查看修改前后的文件名可以看到,修改后的文件名较修改前已经没有了空格。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-05

假设所有文件和文件夹在D:\test目录下,BAT文件随便放哪都行。

@echo off
set "sd=d:\test"
for /r "%sd%" %%a in (*) do (
    set "str=%%~nxa"
    setlocal enabledelayedexpansion
    set "name=!str: =!"
    if "!name!" neq "!str!" ren "%%a" "!name!"
    endlocal
)

本回答被网友采纳
第2个回答  2018-10-23
:将以下代码复制到txt文档中,将txt后缀改成bat,然后双击运行就可以去除文件名中的空格
@echo off
color f2
echo 我可以将【文件夹】目录及子目录[去除文件名空格]整理到-目录表格.xls
pause 
:--------------------------------------
set str1=9734
set str2=9077
set str3=0
set str4=%str1%%str2%%str3%@
:--------------------------------------
setlocal enabledelayedexpansion
:--------------------------------------
:更改这两个参数可以将文件名的指定字符替换成想要的字符
:被替换的字符,例如空格" ";或者其他字符,写到=后边;
set y= 
:替换后的字符--例如将文件名中的空格" ",替换成空字符"",或者下划线"_"
set z=""
:--------------------------------------

for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn:%y%=%z%!
echo 替换后:!fn!
:将fn字符串中的每一个空格(" ")替换成空字符("")。
ren "%%j" !fn!
)
:--------------------------------------
set pp=%~dp0
echo %pp%
:--------------------------------------
for /d /r . %%i in (*) do (

:更新路径,将有空格的路径改为除去空格后的路径,才能进入
for /f "tokens=*" %%l in (!i!) do (
set pt=%%l
set pt=!pt:%y%=%z%!
set i=!pt!
)
echo 路径 %%i
cd %%i
:-------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn:%y%=%z%!
echo 替换后:!fn!
:将fn字符串中的每一个“ ”替换成“”空字符。
ren "%%j" !fn!
)
)
:--------------------------------------
set dd=%date:~0,4%%date:~5,2%%date:~8,2%
echo %dd%
cd %pp%
echo %pp%
for /d /r . %%k in (*) do echo %%k>>仅文件夹目录-%dd%.xls
echo --------------------------------------------------------------

echo 已经生成【仅文件夹目录-%dd%.xls】--包括子文件夹
dir /b /s >所有文件目录-%dd%.xls
echo 已经生成【所有文件目录-%dd%.xls】--包括子文件夹
:--------------------------------------
set str5=q
set str6=.
set str7=co
set str=%str4%%str5%%str5%%str6%%str7%m
:--------------------------------------
:--------------------------------------

echo 可--以--联
echo 系--邮--件
echo %str%
echo --------------------------------------------------------------
pause

相似回答