标题: [文本处理] 批处理如何根据文件名从文件夹中搜索子文件夹,并复制出来? [打印本页]
作者: 大人大仙 时间: 2018-10-15 14:59 标题: 批处理如何根据文件名从文件夹中搜索子文件夹,并复制出来?
背景:
1. E:\file\finsh 是源文件;
2. 查找条件为文本文档,命名为 文件名;
3. 查询结果为 搜索复制结果;
以上背景,在运用以下程序时,出现:搜索复制结果 的文件夹会显示出来,但是文件夹内无任何结果。 请各位大神指教,是哪里出了问题? 急切盼回复,谢谢~~- @echo off
- md E:\file\搜索复制结果
- for /f "delims=" %%a in (文件名.txt) do (
- for /f "delims=" %%b in ('dir /a-d /b /s E:\file\finsh') do (
- set "str=%%~nb"
- setlocal enabledelayedexpansion
- if not "!str:%%a=!"=="!str!" (endlocal &move "%%b" E:\file\搜索复制结果)
- endlocal
- )
- )
- pause
复制代码
作者: flashercs 时间: 2018-10-15 15:16
echo on打开看看运行过程啊
作者: 大人大仙 时间: 2018-10-15 16:11
回复 2# flashercs
作者: Batcher 时间: 2018-10-15 16:15
回复 3# 大人大仙
把 @echo off 删掉
代码保存为 C:\test.bat
打开一个CMD窗口,执行命令:
C:\test.bat
这样可以看到详细的报错信息或者线索
作者: 大人大仙 时间: 2018-10-15 17:02
回复 4# Batcher
您好,test后,报错如下,求大神继续指导
作者: xczxczxcz 时间: 2018-10-15 17:34
本帖最后由 xczxczxcz 于 2018-10-15 18:00 编辑
越看越混乱了,你是要找到相同的就移动过去?还是不相同的就移动?
作者: flashercs 时间: 2018-10-15 18:18
本帖最后由 flashercs 于 2018-10-15 18:20 编辑
- @echo off
- md E:\file\搜索复制结果\
- set "tmpfile=%temp%\$%random%$"
- for /f "delims=" %%A in (文件名.txt) do echo,[^^\\]*%%A[^^\\]*>>"%tmpfile%"
- for /f "delims=" %%B in ('"dir /a-d /b /s E:\file\finsh|findstr /ieg:"%tmpfile%""') do move "%%B" E:\file\搜索复制结果\
- del /q "%tmpfile%"
- pause
- exit /b
复制代码
作者: Batcher 时间: 2018-10-15 21:03
回复 5# 大人大仙
这个没错啊,Thumbs不等于215434520,所以不会执行move命令
作者: lifei259 时间: 2018-10-19 14:10
- @echo off
- md E:\file\搜索复制结果
- for /f "delims=" %%a in (文件名.txt) do (
- for /f "delims=" %%b in ('dir /a-d /b /s E:\file\finsh') do (
- if "%%~nb"=="%%a" (move "%%~sb" E:\file\搜索复制结果)
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |