找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33730|回复: 14

[文件操作] [已解决]BAT批处理怎样把当前目录下的子目录中的文件加上目录名?

[复制链接]
发表于 2014-5-10 20:48:50 | 显示全部楼层 |阅读模式
本帖最后由 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
我在网上找到了一个进入目录后,可以加上目录名的代码,我想要一个遍历当前目录下所有子目录,并在文件前加上文件名。
这是不能遍历的代码:
  1. @echo off
  2. set n=%cd%
  3. :aaa
  4. if not "%n:\=%"=="%n%" set "n=%n:*\=%" & goto aaa
  5. for /f "delims=" %%a in ('dir /a-d /b *.*') do ren "%%a" "%n%_%%a"
  6. pause & exit
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-5-10 21:25:58 | 显示全部楼层
cd F:\a

Get-ChildItem -Recurse -File |ForEach-Object { Rename-Item -Path $_.FullName   -NewName  ($_.BaseName + $_.Name)}
发表于 2014-5-10 21:39:42 | 显示全部楼层
  1. @echo off
  2. pushd "d:\test"
  3. for /f "delims=" %%a in ('dir /a-d /b /s *.*') do (
  4.     for %%b in ("%%a\..") do echo,ren "%%a" "%%~nxb_%%~nxa"
  5. )
  6. pause
复制代码
发表于 2014-5-10 22:33:46 | 显示全部楼层
本帖最后由 CrLf 于 2014-5-10 22:35 编辑
  1. @echo off
  2. pushd "d:\test"
  3. for /r /d %%a in (*) do (
  4.     for %%b in ("%%a\*") do ren "%%b" "%%~nxa%%~nxb"
  5. )
复制代码

评分

参与人数 1技术 +1 收起 理由
zhao3 + 1 真达人~~!

查看全部评分

 楼主| 发表于 2014-5-10 22:39:21 | 显示全部楼层
3#的程序,执行后没有任何动静,但输出的代码,我在CMD中手动输入,却可以成功改名。。
4#的程序,执行后,要改名的文件没有动静,.bat文件的名称或在不断的更改。
发表于 2014-5-10 22:41:41 | 显示全部楼层
回复 5# zhao3


    4楼的那个代码放在桌面上执行试试
 楼主| 发表于 2014-5-10 22:42:59 | 显示全部楼层
好的,就是改D:\test目录下的子目录中的文件名?我测试下。
 楼主| 发表于 2014-5-10 22:43:55 | 显示全部楼层
测试失败,是不是我的系统的问题,我的win2003.
发表于 2014-5-11 11:47:00 | 显示全部楼层
3#代码需要去掉echo
4#代码我测试就没问题。只是只能对子目录的文有效,对当前一级无效。
发表于 2014-5-11 17:51:41 | 显示全部楼层
回复 5# zhao3


因为文件改名、删除都属于危险性的操作,所以在ren前加上echo,确认没有问题删掉echo即可

这样做完全是为安全考虑,楼主勿需抱怨“没有动静”。假如给你的是一段全盘格式化的代码,那动静可大了
发表于 2014-5-11 18:05:30 | 显示全部楼层
回复 10# apang


    楼上是出于善意,但建议简单注明,因为不懂批处理的人看不懂你的考虑呀...
发表于 2014-5-11 19:48:27 | 显示全部楼层
回复 11# CrLf


    个人认为,对批处理有一点基本常识的人,注不注明都是一样的,用点心就知道怎么回事。

楼主给人的赶脚,不像是对批处理一点都不会的人啊,顶楼能贴出代码,知道tree,知道dir遍历
 楼主| 发表于 2014-5-12 16:55:12 | 显示全部楼层
四楼的程序,我在另一台电脑上执行成功,当时就在想,高手在发出前肯定会测试的,只是没有想到真的是系统出现了问题。谢谢您。
 楼主| 发表于 2014-5-12 17:00:22 | 显示全部楼层
回12楼,我是一名化学教师,只是对电脑比较兴趣,代码之类的,只会看一些很直观的简单的,比如极其简单的网页代码,asp代码。
tree命令是十几前考全国计算机等级考试所必须的啊。其实我还会copy,move,rename,dir,哈哈。。。。
这里的环境太好了,大家都是这么热心的技术控,膜拜~~~!
谢谢大家,谢谢CCTV、BATTV、CCAV、MTV……
发表于 2014-5-12 18:07:44 | 显示全部楼层
回复 14# zhao3


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:30 , Processed in 0.042796 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表