批处理查找批量文件夹并剪切到指定文件夹

需要查找的文件夹名称全在file.txt这个txt文件里面
内容如下:
DA13974B
DA13974B
DA14366B
DI13717A
。。。。。

然后需要在目录E:\2011下面(包括它下面的子目录)查找以上文件夹名
并剪切到指定文件夹E:\ok
查找完毕以后输出查找失败的文件夹名称。
或者再简单点,我就想删除file.txt下列出的这些文件夹,怎么做?

批处理查找批量文件夹并剪切到指定文件夹:
1.请将下列代码复制到空的记事本内:
@echo off
echo 移动文件中...
for /f "delims=" %%i in ('dir *.* /a-d /s /b') do (
if not "%%~dpi"=="%~dp0" call :movefile "%%i"
)
echo 移动文件完成!
pause&exit
:movefile
if exist "%~dp0%~nx1" set "n="&goto renfile
move %1 "%~dp0">nul 2>nul||(attrib -r -h -s %1& move %1 "%~dp0">nul)
goto :eof
:renfile
set/a n+=1
if exist "%~dp0%~n1(%n%)%~x1" goto renfile
move %1 "%~dp0%~n1(%n%)%~x1">nul 2>nul||(
attrib -r -h -s %1& move %1 "%~dp0%~n1(%n%)%~x1">nul)
goto :eof
2、修改记事本后缀为.bat,双击运行即可实现。
说明:
只移动所有文件,比移动所有目录就容易多了。
上面的批处理,移动所有子目录中的文件到根目录中。就是B级目录,C级目录及下面它们下面的子目录中的文件都移动到A根目录中。如果存在重名,就重新用文件(数字)后缀重命名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-06
@echo off
for /f "tokens=*" %%i in ('type file.txt') do (
for /f "tokens=*" %%a in ('dir /b /s %%i') do (
if exist "%%~dpnxa" (move "%%~dpnxa" "e:\ok") else (echo 不存在%%i)))


删除请用下面代码
@echo off
for /f "tokens=*" %%i in ('type file.txt') do del /f "%%i"

追问

谢谢,不过我需要在E:\2011下面查找txt文本里的这些文件,你编这个程序没有E:\2011这个路径啊? 而且,我想删除的是文件夹,并不只是文件夹下的文件。

追答

不好意思看错了

@echo off
for /f "tokens=*" %%i in ('type file.txt') do (
for /f "tokens=*" %%a in ('dir /ad /b /s E:\2011\%%i') do (
if exist "%%~dpa" (move "%%~dpa" "e:\ok") else (echo 不存在%%i)))

@echo off
for /f "tokens=*" %%i in ('type file.txt') do (
del /s /f "%%i"
rd /s /q "%%i")

本回答被提问者采纳
第2个回答  2014-03-07
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (file.txt) do (
set found=0
for /r "e:\2011" %%j in (%%i) do if exisit "%%j" set found=1&move "%%j" "e:\ok"
if "!found!"=="0" echo 未找到: %%i)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网