Board logo

标题: [文本处理] 批处理如何根据文件名的前几位字符将文件移动到以这些字符命名的文件夹? [打印本页]

作者: jimmy198719    时间: 2010-10-21 11:49     标题: 批处理如何根据文件名的前几位字符将文件移动到以这些字符命名的文件夹?

本帖最后由 pcl_test 于 2016-9-27 13:16 编辑

我看到有一篇类似的帖子是http://www.bathome.net/redirect.php?fid=5&tid=8551&goto=nextoldset
不过他的文件名有分隔符,而我的文件名就是字符串,例如

778891.jpg
778865a.gif
7789hjk.jpg
7790uijlj.jpg
......


我想做到根据前四位新建文件夹并移动文件,如778891.jpg和778865a.gif 移动到7788文件夹;
7789hjk.jpg 移动到7789;7790uijlj.jpg移动到7790


上面的帖子方法可以借鉴,我获取了半天文件名都不成功,因为是初学者,希望大家帮忙
作者: yangfengoo    时间: 2010-10-21 12:10

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /a-d') do (
  3.    set "x=%%~a"
  4.    set x=!x:~0,4!
  5.    if not exist !x! md !x!
  6.    move "%%~a" !x!\
  7.    )
  8. pause
复制代码

作者: jimmy198719    时间: 2010-10-21 13:02     标题: 回复 2楼 的帖子

好迅速啊,测试通过了,谢谢啦。
不过不太懂('dir /b /a-d')的意思。还有%%a 和%%~a的区别是什么啊?“!”是什么意思?
dos就会简单的打开运行,希望解释一下啊。
作者: yangfengoo    时间: 2010-10-21 13:40

学好基础自然就知道了,都是基础内容
作者: jimmy198719    时间: 2010-10-21 14:00     标题: 回复 4楼 的帖子

恩,好,谢谢啊~~~
作者: Batcher    时间: 2010-10-21 14:15     标题: 回复 3楼 的帖子

建议到教学区找几个基础教程看看




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2