bat批处理 识别文件中的特定字符并移动到有相同特定字符的文件夹中去?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat批处理 识别文件中的特定字符并移动到有相同特定字符的文件夹中去?相关的知识,希望对你有一定的参考价值。

如题,有很多个不同名字的文件(格式为pdf\word),他们命名中大部分都不同(如AB-CDEFG\AB-12345\AB-1A2B3C等),有可确定开始读取的标识符(如AB-..........),有现成的文件夹,命名为:序号+汉字+AB-......,如何识别特定文件名放到特定文件夹下?
按照网上的资料现在只能做到识别特定字符后根据特定字符生成文件夹并一定文件,但是在文件夹已经有的情况下要怎么处理呀,求大神

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据,最好发下截图
复制粘贴到记事本,另存为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 (
for /f "delims=-" %%b in ("%%~nxa") do (
for /f "delims=" %%d in ('dir /ad/b "*%%b-*" 2^>nul') do (
echo;"%%a" --^> "%%d\"
move "%%a" "%%d\"
)
)
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit追问

感感感谢大佬,基本实现了功能,这个是能从文件开头来识别,有点问题是能不能从文件中间提取特定字符识别,还有是否能设定特定前缀的内容和长度?

大概就是这么个情况,要把文件放到相应的文件夹里面

追答

按运行后窗口中的提示联系我

参考技术A 基本上这类问题用EXCEL配合BAT都非常简单,不需要写复杂的BAT,你懂EXCEL么?如果懂,给出具体的文件名和文件夹示例,重新描述你的目的。

如何用bat遍历文件,并找到文件名包含某字符的文件吗?

这是我写的,但是好像一直无法正常运行,不知道是哪里错了
@echo off
set a=1
set ”b=-46-1”
for %%i in (*) do (
“%a%=%%i”
echo %a%| findstr %b% >nul && (
echo %a%含%b%
) || (
echo %a%不包含%b%
)
)

pause

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件或文件夹放一起双击运行@echo off&cd /d "%~dp0"
rem 搜索/查找文件名称中存在/包含指定字符的文件
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "findword=-46-1"
for /f "delims=" %%a in ('dir /a-d-h/b/s "*%findword%*"') do echo;%%a
echo;%#% +%$%%$%/%_% %z%
pause
exit

本回答被提问者采纳

以上是关于bat批处理 识别文件中的特定字符并移动到有相同特定字符的文件夹中去?的主要内容,如果未能解决你的问题,请参考以下文章

求bat批量移动文件到包含文件名的文件夹中, 文件夹有多层,需自动识别到与文件名对应的文件夹。

如何用BAT删除文件名中特定的几个字?

bat批量移除文件名中指定字符

bat中替换中文字符串

从单个ECHO命令输出的连接文本文件在预期输出后第二次将字符插入到字符串中

bat批处理,根据清单中的文件名将多个文件移动到另外一个路径下,如何批量处理?非常感谢!