标题: [文件操作] [已解决]BAT批处理怎样把当前目录下的子目录中的文件加上目录名? [打印本页]
作者: zhao3 时间: 2014-5-10 20:48 标题: [已解决]BAT批处理怎样把当前目录下的子目录中的文件加上目录名?
本帖最后由 zhao3 于 2014-5-13 23:51 编辑
A\11.txt
A\22.txt
B\11.txt
B\22.txt
C\11.txt
C\22.txt
加上文件名后, 变成
A\A11.txt
A\A22.txt
B\B11.txt
B\B22.txt
C\C11.txt
C\C22.txt
我在网上找到了一个进入目录后,可以加上目录名的代码,我想要一个遍历当前目录下所有子目录,并在文件前加上文件名。
这是不能遍历的代码:- @echo off
- set n=%cd%
- :aaa
- if not "%n:\=%"=="%n%" set "n=%n:*\=%" & goto aaa
- for /f "delims=" %%a in ('dir /a-d /b *.*') do ren "%%a" "%n%_%%a"
- pause & exit
复制代码
作者: softy 时间: 2014-5-10 21:25
cd F:\a
Get-ChildItem -Recurse -File |ForEach-Object { Rename-Item -Path $_.FullName -NewName ($_.BaseName + $_.Name)}
作者: apang 时间: 2014-5-10 21:39
- @echo off
- pushd "d:\test\"
- for /f "delims=" %%a in ('dir /a-d /b /s *.*') do (
- for %%b in ("%%a\..") do echo,ren "%%a" "%%~nxb_%%~nxa"
- )
- pause
复制代码
作者: CrLf 时间: 2014-5-10 22:33
本帖最后由 CrLf 于 2014-5-10 22:35 编辑
- @echo off
- pushd "d:\test"
- for /r /d %%a in (*) do (
- for %%b in ("%%a\*") do ren "%%b" "%%~nxa%%~nxb"
- )
复制代码
作者: zhao3 时间: 2014-5-10 22:39
3#的程序,执行后没有任何动静,但输出的代码,我在CMD中手动输入,却可以成功改名。。
4#的程序,执行后,要改名的文件没有动静,.bat文件的名称或在不断的更改。
作者: Batcher 时间: 2014-5-10 22:41
回复 5# zhao3
4楼的那个代码放在桌面上执行试试
作者: zhao3 时间: 2014-5-10 22:42
好的,就是改D:\test目录下的子目录中的文件名?我测试下。
作者: zhao3 时间: 2014-5-10 22:43
测试失败,是不是我的系统的问题,我的win2003.
作者: zhanglei1371 时间: 2014-5-11 11:47
3#代码需要去掉echo
4#代码我测试就没问题。只是只能对子目录的文有效,对当前一级无效。
作者: apang 时间: 2014-5-11 17:51
回复 5# zhao3
因为文件改名、删除都属于危险性的操作,所以在ren前加上echo,确认没有问题删掉echo即可
这样做完全是为安全考虑,楼主勿需抱怨“没有动静”。假如给你的是一段全盘格式化的代码,那动静可大了
作者: CrLf 时间: 2014-5-11 18:05
回复 10# apang
楼上是出于善意,但建议简单注明,因为不懂批处理的人看不懂你的考虑呀...
作者: apang 时间: 2014-5-11 19:48
回复 11# CrLf
个人认为,对批处理有一点基本常识的人,注不注明都是一样的,用点心就知道怎么回事。
楼主给人的赶脚,不像是对批处理一点都不会的人啊,顶楼能贴出代码,知道tree,知道dir遍历
作者: zhao3 时间: 2014-5-12 16:55
四楼的程序,我在另一台电脑上执行成功,当时就在想,高手在发出前肯定会测试的,只是没有想到真的是系统出现了问题。谢谢您。
作者: zhao3 时间: 2014-5-12 17:00
回12楼,我是一名化学教师,只是对电脑比较兴趣,代码之类的,只会看一些很直观的简单的,比如极其简单的网页代码,asp代码。
tree命令是十几前考全国计算机等级考试所必须的啊。其实我还会copy,move,rename,dir,哈哈。。。。
这里的环境太好了,大家都是这么热心的技术控,膜拜~~~!
谢谢大家,谢谢CCTV、BATTV、CCAV、MTV……
作者: DAIC 时间: 2014-5-12 18:07
回复 14# zhao3
问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |