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