[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何批量重命名多个文件夹下的相同子文件夹?

批量重命名(一个文件夹下的)多个文件夹下的子文件下的相同文件夹

如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命令,怎样与详细的命令呢。谢谢

ren "destFolder\"
ren ""destFilename"
文件夹下有无文件都可成功.
简化你自己学习吧.

TOP

ren的命令我知道,我就是不会写循环,如果只是少量。我可以直接写 :
ren d:\test\a\same nosame
这要就行了。但批量怎样操作呢?

感谢提供的这两个代码:
ren "destFolder\"
ren ""destFilename"
看不太懂,能说清楚一些吗?谢谢

TOP

  1. @echo off
  2. set "Folder=d:\test"
  3. set "OldName=same"
  4. set "NewName=nosame"
  5. if exist "%Folder%\%OldName%\" (
  6.     ren "%Folder%\%OldName%" "%NewName%"
  7. )
  8. for /f "delims=" %%a in (' dir /a:d /b /s "%Folder%\%OldName%" ') do (
  9.     ren "%%a" "%NewName%"
  10. )
复制代码

[ 本帖最后由 vthsg75yjwwqawc 于 2010-8-4 18:38 编辑 ]
http://www.awaker.net

TOP

重命名文件夹,必须先判断它是文件夹, 在最后加上"\"就是用来判断.
  1. pushd "d:\test"
  2. for /f "tokens=* delims=" %%a in ('dir /ad /s /b') do (
  3. echo %%a
  4. echo ------%%~nxa
  5. if "%%~nxa"=="same" (ren "%%a\" "nosame")
  6. )
复制代码

TOP

4楼给出的代码还是应该先判断下是否是文件夹比较安全.

[ 本帖最后由 hfg1977 于 2010-8-4 18:31 编辑 ]

TOP

回复 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 编辑 ]
http://www.awaker.net

TOP

嗯。谢谢两位。呵呵。已经测试。可用。

[ 本帖最后由 netsl 于 2010-8-4 18:58 编辑 ]

TOP

较简单的一种代码:
@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 编辑 ]

TOP

返回列表