标题: 批处理找出两个文件夹内文件名相同的文件 [打印本页]
作者: youxi01 时间: 2008-1-5 21:12 标题: 批处理找出两个文件夹内文件名相同的文件
F盘下现在有两个文件夹:F:\test1、F:\test2
找出它们中文件名相同的文件
作者: more 时间: 2008-3-27 11:24
- @echo off
- for /f "delims=" %%a in ('dir /s/b/a-d "f:\test1\"') do (
- for /f "delims=" %%b in ('dir /s/b/a-d "f:\test2\"') do (
- if "%%~nxa"=="%%~nxb" echo "%%~nxa"
- ))
- echo.&pause
复制代码
作者: 梦想种子 时间: 2008-3-29 20:37
- @echo off
- cd /d f:
- echo 相同的文件有:
- for /f "delims=" %%i in ('dir /b/a-d "test1" "test2"^|sort') do (
- call :judge "%%i"
- )
- pause
- exit
- :judge
- if "%str1%" == %1 echo %~1
- set str1=%~1
复制代码
不足之处:层深仅为一
作者: nomyself 时间: 2008-11-2 17:47
- @dir /a /b f:\test >>s1.txt
- @dir /a /b f:\test1 >>s2.txt
- @for /f %%i in (s1.txt) do @(
- @for /f %%j in (s2.txt) do @if "%%~nxi"=="%%~nxj" echo "%%i" 是同名文件
- )
- del s1.txt
- del s2.txt
- pause
复制代码
作者: 随风 时间: 2008-11-2 17:59 标题: 回复 4楼 的帖子
1、临时文件可以不要
2、for这样勘套,设计不合理,会影响效率
作者: nomyself 时间: 2008-11-3 09:25 标题: 回复 5楼 的帖子
版主批评的是啊。
没有想过效率的问题啊,惭愧!
以后改进!
PS:版主签名不错!
[ 本帖最后由 nomyself 于 2008-11-3 09:26 编辑 ]
作者: guihao 时间: 2010-7-28 16:21
不知是否可以。感觉效率不怎么样。
请LZ评价一下。-
- @echo off
- for /f "delims=" %%a in ('dir /s/b/a-d "f:\test"') do (
- dir /s/b/a-d "f:\test1" | find "%%~nxa" >nul&& echo %%~nxa
- )
复制代码
[ 本帖最后由 guihao 于 2010-7-28 16:23 编辑 ]
作者: keiamy 时间: 2014-2-1 14:59
本帖最后由 keiamy 于 2014-2-1 15:18 编辑
想了很久....- @echo off
- for /r F:\test1\ %%i in (*) do (dir /a-d /s /b "F:\test2\%%~nxi" 2>nul)
- pause
复制代码
作者: zycctv1234 时间: 2014-3-27 15:46
不会啊,看不懂
作者: changedirectory 时间: 2014-6-11 21:51
- @echo off
- for /r f:\test1 %%i in (*) do (
- set "%%~nxi=a"
- )
- for /r f:\test2 %%j in (*) do (
- if defined %%~nxj echo %%j
- )
- pause
复制代码
作者: zh_1452 时间: 2014-6-22 10:52
- @echo off
- set str=c d e f g a
- echo 当前的硬盘的分区有:
- for %%i in (%str%) do if exist %%i: echo %%i:
- pause
- echo 显示F盘下所有的文件夹和文件并分宽列出来
- cd..\..
- cd /d e:\.&dir /s/a/w
- pause
- @echo off
- for %%i in (e:\test1\*.txt test2\*.txt) do echo %%i
- pause
- @echo off
- for %%i in (e:\test1.\*.txt test2\*.txt) do type %%i
- pause
- @echo off
- for %%i in (e:\test1.\*.txt test2\*.txt) do more %%i
- pause
- @echo off
- for /f "delims=," %%i in (e:\test2\3.txt) do echo %%i
- pause
- @echo off
- for /f %%i in (e:\test1\1.txt) do echo %%i
- pause
复制代码
写这段代码用了2个小时,还是感觉不够完整,FOR语句还是不够掌握,SET也没用上,
等想好了再发上来。
作者: shelluserwlb 时间: 2014-11-8 10:17
本帖最后由 shelluserwlb 于 2014-11-8 12:14 编辑
- @echo off
- if exist 1.txt del /f 1.txt & if exist 2.txt del /f 2.txt
- for %%i in (f:\test1\*.*) do echo %%~nxi>>1.txt
- for %%j in (f:\test2\*.*) do echo %%~nxj>>2.txt
- findstr /ig:1.txt 2.txt
- del 1.txt & del 2.txt
- pause>nul
复制代码
作者: ann 时间: 2014-12-19 18:16
回复 3# 梦想种子
那个sort是个啥?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |