标题: [文件操作] [已解决]批处理怎样根据首字母移动文件? [打印本页]
作者: wenlishasha 时间: 2015-6-27 22:13 标题: [已解决]批处理怎样根据首字母移动文件?
求一个批处理,我有一堆txt文件,几十万个,想实现这种效果:把首字母相同的移动到同一个文件夹内,文件夹名字为首字母
请各位大师帮忙!
作者: wenlishasha 时间: 2015-6-28 08:56
比如,txt文如下:Primula poissonii海仙报春.txt,Primula sinopurpurea紫花雪山报春.txt……
新建文件夹(名字为P),将他们移动到“P”文件夹
作者: pcl_test 时间: 2015-6-28 09:38
本帖最后由 pcl_test 于 2015-6-28 17:09 编辑
- @echo off &setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set str=%%~na
- if not exist "!str:~,1!\" md "!str:~,1!\"
- move "!str:~,1!*%%~xa" "!str:~,1!\"
- )
复制代码
作者: aa77dd@163.com 时间: 2015-6-28 09:47
- @echo off
- for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if not exist %%a\ md %%a\
- 2>nul move %%a*.txt %%a\
- )
- pause
复制代码
作者: wenlishasha 时间: 2015-6-28 14:18
回复 3# pcl_test
请问, 如果不是txt,是文件夹怎么改代码?
作者: wenlishasha 时间: 2015-6-28 15:10 标题: 文件夹移动
求一个批处理,我有一堆文件夹,几十万个,想实现这种效果:把首字母相同的移动到同一个文件夹内,文件夹名字为首字母
请各位大师帮忙!
比如:Primula poissonii海仙报春,Primula sinopurpurea紫花雪山报春……
新建文件夹(名字为P),将他们移动到“P”文件夹
作者: pcl_test 时间: 2015-6-28 17:22
- @echo off &setlocal enabledelayedexpansion
- for /d %%a in (*) do (
- set str=%%~na
- if not exist "!str:~,1!\" md "!str:~,1!\"
- move "%%a" "!str:~,1!\"
- )
复制代码
作者: wenlishasha 时间: 2015-6-28 17:46
谢谢各位!!
作者: wenlishasha 时间: 2015-6-29 23:34
回复 7# tigerpower
移动txt的没试,移动文件夹的确实非常慢
作者: carlmystery 时间: 2018-3-15 18:07
回复 3# pcl_test
这样的代码会有个兼容问题,一旦文件名含有!等延迟变量专用字符,就会被忽略掉。
作者: pcl_test 时间: 2018-3-16 12:25
回复 10# carlmystery - @echo off
- for /d %%a in (*) do (
- set "str=%%a"
- setlocal enabledelayedexpansion
- if not exist "!str:~,1!\" md "!str:~,1!\"
- echo;move "!str!" "!str:~,1!\"
- endlocal
- )
- pause
复制代码
- @echo off
- for /d %%a in (*) do (
- set "str=%%a"
- call :loop
- )
- pause&exit
- :loop
- if not exist "%str:~,1%\" md "%str:~,1%\"
- move "%str%" "%str:~,1%\"
- goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |