需要查找的文件夹名称全在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.请å°ä¸å代ç å¤å¶å°ç©ºçè®°äºæ¬å ï¼
@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"追问
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")本回答被提问者采纳
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 offfor /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)
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)