标题: [文件操作] 批处理如何将文件按名称移动汇总至不同的文件夹? [打印本页]
作者: pzr0254 时间: 2017-9-27 18:04 标题: 批处理如何将文件按名称移动汇总至不同的文件夹?
请教各位老师:
现有表格文件若干,命名为4位数字+不同名称,如1010天气不错、1010阳光明媚、1010风和日丽、1020天气糟糕、1020狂风暴雨、1020电闪雷鸣等等,现想根据文件命名前4位数字进行归档,将前4位数字相同的文件移至同一新建文件夹中,此文件夹使用此4位数字命名,如1010文件夹里面包括1010天气不错、1010阳光明媚、1010风和日丽;1020文件夹里面包括1020天气糟糕、1020狂风暴雨、1020电闪雷鸣。
由于此类文件数量较多,手工处理十分低效,还请大师们鼎力相助,谢谢!
作者: pzr0254 时间: 2017-10-11 08:57
难道无法实现么,求高手们帮忙
作者: zhanglei1371 时间: 2017-10-12 16:46
- @echo off & setlocal enabledelayedexpansion
- for /f "usebackq" %%i in (`dir /a /b /s ^|findstr ^^[0-9][0-9][0-9][0-9].*$`) do (
- set str=%%~ni
- set d=!str:~0,4!
- md !d!>nul 2>nul & move %%i !d!
- )
- pause
复制代码
作者: pzr0254 时间: 2017-10-24 15:49
感谢高手指点,不过测试没有成功,不知还有哪些需要注意或自行修改的信息?
作者: Blitz 时间: 2017-10-24 16:04
本帖最后由 Blitz 于 2017-10-24 16:06 编辑
回复 4# pzr0254
我都测试成功了,你没成功可能是你的描述不准确
作者: pzr0254 时间: 2017-10-25 11:19
确实,我按描述内容测试也成功了,应该是我实际处理文件名称或数量与代码有些不符,我试着自己调整一下,多谢二位指点,多谢!
作者: lifei259 时间: 2017-10-29 22:50
- @echo off & setlocal enabledelayedexpansion
- for /f "tokens=*" %%a in ('dir /a-d /b /s ^|findstr ^[0-9][0-9][0-9][0-9]') do (
- for /f "delims=" %%i in ('echo,%%~na^|findstr/b ^[0-9]') do (
- set str=%%~ni
- set d=!str:~0,4!
- if not exist !d! md !d!
- move %%a !d!
- ))
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |