返回列表 发帖
回复 4# lxh623

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

评分人数

TOP

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

回复 8# lxh623


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

评分人数

TOP

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

回复 11# lxh623


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

评分人数

TOP

返回列表