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

[文件操作] [已解决]批处理遍历文件夹名后的后续处理如何进行,如何可以只截断到文件名?

[复制链接]
发表于 2015-5-18 14:23:21 | 显示全部楼层 |阅读模式
本帖最后由 playinthesky 于 2015-5-18 15:49 编辑

有文件夹A下面有

D:\A\1110-222-333-474
D:\A\1610-222-323-424
D:\A\1110-282-313-444
D:\A\1110-222-313-494
'''''
很多个
D:\A\1110-212-553-494

然后就这样,用DIR去翻找

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b/s/a-d %~dp0\') do echo %%a >>1.txt
  3. pause
复制代码
将所有列出的文件夹的名字,存入1.txt

但是1.txt内的文件名是完整的路径

D:\A\1110-222-333-474
D:\A\1610-222-323-424
D:\A\1110-282-313-444
D:\A\1110-222-313-494
'''''
很多个
D:\A\1110-212-553-494

如何可以做到遍历之后,只留下的文件名是
1110-222-333-474
1610-222-323-424
1110-282-313-444
1110-222-313-494

不带前面的 D:\A\

然后在使用  批处理 ,读取 1.txt 的文件名目录

在D:\B\ 的目录下将

1110-222-333-474
1610-222-323-424
1110-282-313-444
1110-222-313-494
等相同名的文件给删除

del /s/q    %%a

评分

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

查看全部评分

 楼主| 发表于 2015-5-18 14:40:34 | 显示全部楼层
我想出来了,

  1. @echo off
  2. for /f "delims=\ tokens=8" %%a in ('dir  /b/s/ad') do echo %%a >>1.txt
  3. pause
复制代码
 楼主| 发表于 2015-5-18 14:41:00 | 显示全部楼层
问题是怎么读取1.txt的内容,然后删除。
发表于 2015-5-18 14:47:50 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-18 14:50 编辑
  1. @echo off
  2. for /f %%a in ('dir /b/s/ad') do del "D:\B\%%~na.*" /f /q
  3. pause
复制代码
 楼主| 发表于 2015-5-18 14:57:11 | 显示全部楼层
回复 4# pcl_test


    我讲错了,是文件夹的名!我再思考一下。谢谢大侠的提点,我修改一下标题。
发表于 2015-5-18 14:57:49 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b/ad d:\A') do xcopy /y  /e "d:\B\%%~na" "d:\A\%%~na" &&rd /s/q "d:\B\%%~na"
  3. pause
复制代码
求教MOVE "d:\B\%%~na" "d:\A\%%~na" 拒绝访问是什么原因
发表于 2015-5-18 15:04:10 | 显示全部楼层
回复 5# playinthesky
del "D:\B\%%~na.*" /f /q改为rd "D:\B\%%~na" /s /q
发表于 2015-5-18 15:17:31 | 显示全部楼层
按照你的思路:
  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /s /ad %%~dp0') do (
  3.     echo %%~nxi
  4. ))>1.txt
  5. for /f "delims=" %%i in (type "1.txt") do (
  6.     rd /s /q "D:\B\%%i"
  7. )
复制代码
简化:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /ad %%~dp0') do (
  3.     rd /s /q "D:\B\%%~nxi"
  4. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-5-18 15:49:01 | 显示全部楼层
回复 8# gawk


    你水平真高啊!!!
 楼主| 发表于 2015-5-23 22:52:48 | 显示全部楼层
回复 8# gawk


    谢谢你。高手。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 05:15 , Processed in 0.021492 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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