最近朋友一直抱怨说有一堆的文件夹需要重新修改名称,一个一个处理非常浪费时间,问有没有什么简洁的方法进行处理。
在明白了朋友的需求后,想到可以写个bat批处理文件进行处理。
首先分析下朋友的需求:
原文件夹名称及结构:D:
----test01
----test02_XXXX_XXXX
----test03_XXXX_XXXX
需要将test01文件夹下的test02下划线后的内容去掉,并将文件夹test02下的test03文件夹下划线后面的内容去掉。
修改为:
----test01
----test02
----test03
明白需求后,发现可以通过获取文件夹的名称,并通过下划线区切文件夹名,并利用bat批处理命令的“ren”进行改名。
处理代码如下:
@echo off&setlocal enabledelayedexpansion
::获取当前路径的文件夹名
for /f %%p in ('dir /ad/b') do (
set p1=
set p2=--
::输出当前文件夹名称
echo %%p
cd %%p
::获取当前文件夹下的子文件夹名
for /f %%a in ('dir /ad/b') do (
set pathname=%%a
::通过"_"区切出当前文件夹名的第一个名称
for /f "tokens=1 delims=_" %%b in ("!pathname!") do (
set new_pathname=%%b
)
::更改文件夹名
ren !pathname! !new_pathname!
::输出当前文件夹下的子文件夹名
echo !p1!!p2!!pathname!
::定位到当前文件夹下的子文件夹名
cd .!new_pathname!
::获取当前文件夹下的子文件夹名
for /f %%c in ('dir /ad/b') do (
set pathname2=%%c
::输出当前文件夹下的子文件夹名
echo !p1!!p1!!p1!!p2!!pathname2!
::通过"_"区切出当前文件夹名的第一个名称
for /f "tokens=1 delims=_" %%d in ("!pathname2!") do (
set new_pathname2=%%d
)
::更改文件夹名
ren !pathname2! !new_pathname2!
)
cd ..
)
cd ..
)
pause
处理后的结果:
初步实现了文件夹的名称修改。发给朋友后,朋友在需要修改的路径下进行了测试,发现有部分文件夹名无法修改,原因是文件夹名中有空格,用上述的代码无法处理,见下图:
原因批处理命令遇到“space”后便把space前后的命令当成两个命令,导致一个文件夹名变成两个,因此提示系统找不到指定文件。
对上述代码进行修改,加入"tokens=* delims="参数,即将bat默认的以space区分修改为不以space区分,修改后的代码如下:
@echo off&setlocal enabledelayedexpansion
::获取当前路径的文件夹名
for /f %%p in ('dir /ad/b') do (
set p1=
set p2=--
::输出当前文件夹名称
echo %%p
cd %%p
::获取当前文件夹下的子文件夹名
for /f "tokens=* delims=" %%a in ('dir /ad/b') do (
set pathname=%%a
::通过"_"区切出当前文件夹名的第一个名称
for /f "tokens=1 delims=_" %%b in ("!pathname!") do (
set new_pathname=%%b
)
::更改文件夹名
ren "!pathname!" !new_pathname!
::输出当前文件夹下的子文件夹名
echo !p1!!p2!!pathname!
::定位到当前文件夹下的子文件夹名
cd .!new_pathname!
::获取当前文件夹下的子文件夹名
for /f "tokens=* delims=" %%c in ('dir /ad/b') do (
set pathname2=%%c
::输出当前文件夹下的子文件夹名
echo !p1!!p1!!p1!!p2!!pathname2!
::通过"_"区切出当前文件夹名的第一个名称
for /f "tokens=1 delims=_" %%d in ("!pathname2!") do (
set new_pathname2=%%d
)
::更改文件夹名
ren "!pathname2!" !new_pathname2!
)
cd ..
)
cd ..
)
pause
执行上述代码,结果如下:
注意上述代码中“ren”命令中的第一个参数要用“”引起来,否则命令不起作用。
到此这篇批处理修改文件夹名称(批处理更改文件夹名称)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rgzn-zryycl/72162.html