[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 取 "[" 和 "]" 之间的字符,新建文件夹,然后移动进去

我要写一个*.bat的代码,实现以下作用:
1、获取*.bat所在文件夹内(不包含子目录)的所有文件,文件名包含 "[" 和 "]" 的文件
2、将文件名按"[" 和 "]" 分隔,取"[" 和 "]" 之间的部分——%%a
3、 用"/a-d/b"表示只显示非目录文件的文件名
4、利用循环
5、在当前目录下创建一个%%a同文件名的文件夹
6、利用move 函数讲符合模式的文件移动到同名文件夹中

我写了好几个,都不对,请各位大声帮忙看看问题在哪?
帮我改一个能用的完整的代码。感谢!



错误代码1:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /a-d/b /s *[*]') do (
    set filename=%%~na
    set foldername=!filename:[=_!
    set foldername=!foldername:]=_!
    set foldername=!foldername: =_!
    if not exist !foldername! md !foldername!
    move "%%a" "!foldername!"
)


错误代码2:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1 delims=[]" %%a in ('dir /b *[*.*') do (
    set FileName=%%~na
    md "%FileName%" 2>nul
    for /f "delims=" %%b in ('dir /b "%FileName%*.txt"') do move "%%b" "%FileName%"
)
pause

根据要求,只针对文件名中有一组[ ]符号的情况进行处理。
利用源文件[ ]内字符生成文件夹,并把该源文件移 ...
ppll2030 发表于 2024-3-10 23:18



        大佬貌似不行啊,这个,运行之后没反应

我有好多文件,文件最后(扩展名之前)用[ ]
分开的
现在就是想用个批处理,把[ ]之间的选出来,然后分类到同一个文件夹里面
如果单独一个,也就放单独一个文件夹内里面

麻烦大佬帮忙看看。。。。

TOP

回复 4# Five66


    暂时还没遇到这种嵌套的

TOP

77七 发表于 2024-3-11 08:57



        大佬貌似不行啊,这个,运行之后没反应(只有一个[]的分类了)

我有好多文件,(并不是在开头的)文件最后(扩展名之前)用[ ]
分开的
现在就是想用个批处理,把[ ]之间的选出来,然后分类到同一个文件夹里面
如果单独一个,也就放单独一个文件夹内里面。麻烦帮忙看看呗

TOP

回复 8# 77七


    5A-DLC扯淡篇.笔记更新于2021.5.5[5233].rar
VBA第二季[5233].rar
VBA第三季[5233].rar
VBA第一季[5233].rar
高级篇笔记[5233].rar
高级篇课件[5233].rar
基础篇笔记[5233].rar
基础篇课件[5233].rar
进阶篇笔记[5233].rar
进阶篇课件[5233].rar
连接MySQL驱动[5233].zip
链接[6155].rar
前3季课件[6155].rar
全4季OneNote笔记[6155].rar
全4季PDF笔记[6155].rar
全3季PDF笔记[8535].rar

[5233]一个文件
[6155]一个文件
[8535]一个文件


酱紫

TOP

返回列表