批处理代码,整理文件夹,移动文件夹到另一个文件夹下
hi,我还在纠结学习批处理代码中。我有这样一些文件夹如:"A1","A1_201301","A2","TB","TB_201302",怎么用批处理,让A1_201301和...
hi, 我还在纠结学习批处理代码中。我有这样一些文件夹如:"A1","A1_201301","A2","TB","TB_201302",怎么用批处理,让A1_201301和TB_201302文件移到A1和TB文件夹下?
就是说将带有"_"的文件夹移动到"_"第一段字符的文件夹内。 展开
就是说将带有"_"的文件夹移动到"_"第一段字符的文件夹内。 展开
2个回答
展开全部
move A1_201301 A1\
move TB_201302 TB\
move TB_201302 TB\
追问
没那么简单哦,我有多少个带下划线的文件名并不固定,还有很多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
纠结? 这个批处理虽不算很复杂 ,但也是多个命令的综合运用
@echo off
for /f "tokens=1* delims=_" %%i in ('dir/b/ad *_*')do (
if not exist "%%i" md "%%i"
move "%%i_%%j" "%%i"
echo %%i_%%j =^> %%i)
pause
@echo off
for /f "tokens=1* delims=_" %%i in ('dir/b/ad *_*')do (
if not exist "%%i" md "%%i"
move "%%i_%%j" "%%i"
echo %%i_%%j =^> %%i)
pause
追问
使用成功。非常感谢。
'dir/b/ad *_* --是什么意思呢?特别是/b/ad
move "%%i_%%j" "%%i"-- 这里的%%j 是什么意思呢?前面也没有赋值给j呀。
请教哦。:)
追答
dir/b/ad *_* 表示显示所有含_符的当前目录下的文件夹 详见cmd 下帮助 dir/?
for命令格式要复杂一些,见for/? 也可到我空间看一篇我前期写的关于for的文章
此处 in ('dir/b/ad *_*')将形成多行字符串,对每行以 _ 为分隔符(delims=_),共取两部分(tokens=1*)取第一段赋给%%i,,其后所有(*的意思)作为第二部分,按字母顺序,第二部分变量即%%j 然后每行作一次循环作do后的命令
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询