标题: [文件操作] 如何把名称中有部分相同字符串的文件移动到以该字符串命名的文件夹? [打印本页]
作者: xkl33 时间: 2010-10-19 15:48 标题: 如何把名称中有部分相同字符串的文件移动到以该字符串命名的文件夹?
本帖最后由 pcl_test 于 2017-3-29 19:37 编辑
在某个目录中。。 有着好些文件,abcdef_bid.* ; abcdef_ccd.jpg ; abcdef_25.txt abcdef.txt 。。。。。
!! 判断:
如果文件名称是 abcdef_bid.* 建文件夹时只取 abcdef 这个部分( "_ " 前的)
移动时候,不管 abcdef_bid.* ; abcdef_ccd.jpg ; abcdef_25.txt ; abcdef.txt 都移到 abcdef 文件夹里
如果文件名称是 abcdef.* 直接用 abcdef 建文件夹
------- 这个乍么写?
[ 本帖最后由 xkl33 于 2010-10-23 15:53 编辑 ]
作者: powerbat 时间: 2010-10-19 17:01
- @echo off
- set "fo=C:\test\a&b"
- for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "%fo%\*_*.*"') do if not exist "%%a" md "%fo%\%%a"
- for /d %%a in ("%fo%\*") do if exist "%%a_*" move "%%a_*" "%%a"
- for /f "delims=" %%a in ('dir /a-d/b "%fo%\*.*"') do (
- if not exist "%fo%\%%~na" md "%fo%\%%~na"
- move "%fo%\%%a" "%fo%\%%~na"
- )
- pause
复制代码
作者: xkl33 时间: 2010-10-21 01:00
测试了, 返回“系统找不到指定的文件”!!
。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者: Batcher 时间: 2010-10-21 12:17 标题: 回复 3楼 的帖子
把@echo off删掉,看看是哪一行代码出错了,告诉他,让他帮你改。
作者: yangfengoo 时间: 2010-10-21 13:42
把 "fo=C:\test\a&b"
改成 "fo=%cd%" 把BAT文件放到存放文件的目录中运行试试吧
作者: xkl33 时间: 2010-10-23 15:52
谢谢!! 修改后测试可用!
- @echo off
- set "fo=%cd%"
- for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "%fo%\*_*.*"') do if not exist "%%a" md "%fo%\%%a"
- for /d %%a in ("%fo%\*") do if exist "%%a_*" move "%%a_*" "%%a"
- for /f "delims=" %%a in ('dir /a-d/b "%fo%\*.*"') do (
- if not exist "%fo%\%%~na" md "%fo%\%%~na"
- move "%fo%\%%a" "%fo%\%%~na"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |