标题: [文本处理] 批处理如何批量重命名多个文件夹下的相同子文件夹? [打印本页]
作者: netsl 时间: 2010-8-4 17:22 标题: 批处理如何批量重命名多个文件夹下的相同子文件夹?
批量重命名(一个文件夹下的)多个文件夹下的子文件下的相同文件夹
如d:\test 下的
d:\test\a\same
d:\test\b\same
d:\test\c\same
d:\test\d\same
d:\test\e\same
d:\test\f\same
注:same下面不有其它文件存在。
需要批量把same改成如:nosame
需要用到IF命令,怎样与详细的命令呢。谢谢
作者: hfg1977 时间: 2010-8-4 17:32
ren "destFolder\"
ren ""destFilename"
文件夹下有无文件都可成功.
简化你自己学习吧.
作者: netsl 时间: 2010-8-4 17:41
ren的命令我知道,我就是不会写循环,如果只是少量。我可以直接写 :
ren d:\test\a\same nosame
这要就行了。但批量怎样操作呢?
感谢提供的这两个代码:
ren "destFolder\"
ren ""destFilename"
看不太懂,能说清楚一些吗?谢谢
作者: vthsg75yjwwqawc 时间: 2010-8-4 18:08
- @echo off
- set "Folder=d:\test"
- set "OldName=same"
- set "NewName=nosame"
-
- if exist "%Folder%\%OldName%\" (
- ren "%Folder%\%OldName%" "%NewName%"
- )
-
- for /f "delims=" %%a in (' dir /a:d /b /s "%Folder%\%OldName%" ') do (
- ren "%%a" "%NewName%"
- )
复制代码
[ 本帖最后由 vthsg75yjwwqawc 于 2010-8-4 18:38 编辑 ]
作者: hfg1977 时间: 2010-8-4 18:18
重命名文件夹,必须先判断它是文件夹, 在最后加上"\"就是用来判断.- pushd "d:\test"
- for /f "tokens=* delims=" %%a in ('dir /ad /s /b') do (
- echo %%a
- echo ------%%~nxa
- if "%%~nxa"=="same" (ren "%%a\" "nosame")
- )
复制代码
作者: hfg1977 时间: 2010-8-4 18:26
4楼给出的代码还是应该先判断下是否是文件夹比较安全.
[ 本帖最后由 hfg1977 于 2010-8-4 18:31 编辑 ]
作者: vthsg75yjwwqawc 时间: 2010-8-4 18:35 标题: 回复 6楼 的帖子
感谢你 5 楼的提示。 4 楼代码已经改了一个地方:
把 if exist "%Folder%\%OldName%" 改为了 if exist "%Folder%\%OldName%\"
代码我已测试,可以重命名。
--------------------------
原帖由 hfg1977 于 2010-8-4 18:26 发表
4楼给出的代码还是应该先判断下是否是文件夹比较安全.
不需要判断的,/a:d 查找的就是文件夹。
[ 本帖最后由 vthsg75yjwwqawc 于 2010-8-4 18:38 编辑 ]
作者: netsl 时间: 2010-8-4 18:39
嗯。谢谢两位。呵呵。已经测试。可用。
[ 本帖最后由 netsl 于 2010-8-4 18:58 编辑 ]
作者: senlinzhihuo 时间: 2010-8-7 17:28
较简单的一种代码:
@echo off
set go=a b c d e f
for %%i in (%go%) do (ren d:\test\%%i\same nosame)
pause
[ 本帖最后由 senlinzhihuo 于 2010-8-7 17:30 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |