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

似乎不是很复杂的问题,被你描述得乱得很,不然早解决了。还不知我是否理解到要怎么弄。
简单地把要搜索的范围表为一处(如E:\涂料-防腐蚀)下的各级文件夹
“相应的文件夹”也放一处
  1. @echo off
  2. set sd=E:\涂料-防腐蚀
  3. set dd=E:\相应目标文件夹
  4. set df=E:\文件夹名.txt
  5. set xn=*.pdf *.txt
  6. for /f "usebackq delims=" %%a in ("%df%")do (
  7.    md "%dd%\%%a" 2>nul
  8.    for /f "delims=" %%b in ('dir/b/s/ad "%dd%\*%%a*"')do (
  9.       echo  ==^> %%b
  10.       for %%c in (%xn%)do move "%%b\%%c" "%dd%\%%a\"
  11.    )
  12. )
  13. pause
复制代码
1

评分人数

TOP

本帖最后由 yyykkkyyyy 于 2011-11-25 15:36 编辑

回复 8# lxh623


    哦,你是说在文件名而不是文件夹名里找“关键字”,符合的移到对应文件夹去...
  1. @echo off
  2. set sd=E:\JP-XIN
  3. set dd=E:\相应目标文件夹
  4. set df=E:\文件夹名.txt
  5. set sf="%sd%\*%%a*.pdf" "%sd%\*%%a*.txt"
  6. for /f "usebackq delims=" %%a in ("%df%")do (
  7.    md "%dd%\%%a" 2>nul
  8.    for /f "delims=" %%b in ('dir/b/s/a-d %sf%')do (
  9.       echo %%b ==^> %dd%\%%a
  10.       move "%%b" "%dd%\%%a\"
  11.    )
  12. )
  13. pause
复制代码
1

评分人数

TOP

本帖最后由 yyykkkyyyy 于 2011-11-26 11:08 编辑

回复 11# lxh623


    楼主描述能力不佳,这看10楼说的,显然还没完全解决问题,说实话我还没理解想作什么,唯有楼主自己学会批处理才方便,那一个词几个词的要把findstr 命令学好才行,我这把顶楼代码改一下,本想尽量少动原码的,实在是不划算——原来为什么有误?因为找文件时是会带路径的,把文件夹名含要找的“关键字”的文件也算相符了,想还用findstr 的话,这个“正则式”会很复杂,还是不用findstr的好,如果还是不合意,请另想他法不宜在此老追问补充情况
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "delims=" %%a in (文件夹名称1.txt)do (
  4.    for /f "delims=" %%b in ('dir/s/b/ad "e:\*%%a*"')do (
  5.    for /f "delims=" %%c in ('dir/s/b/a-d "E:\JP-XIN\*%%a*.pdf" "E:\JP-XIN\*%%a*.txt"')do (
  6.      move "%%c" "%%b\" 2>nul
  7. )))
  8. pause
复制代码
1

评分人数

TOP

返回列表