返回列表 发帖

批处理找出两个文件夹内文件名相同的文件

F盘下现在有两个文件夹:F:\test1、F:\test2
找出它们中文件名相同的文件

@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.&pauseCOPY

TOP

@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=%~1COPY
不足之处:层深仅为一
静水流深...

TOP

@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
pauseCOPY

TOP

回复 4楼 的帖子

1、临时文件可以不要
2、for这样勘套,设计不合理,会影响效率
技术问题请到论坛发帖求助!

TOP

回复 5楼 的帖子

版主批评的是啊。

没有想过效率的问题啊,惭愧!

以后改进!

PS:版主签名不错!

[ 本帖最后由 nomyself 于 2008-11-3 09:26 编辑 ]

TOP

不知是否可以。感觉效率不怎么样。

请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
)COPY

[ 本帖最后由 guihao 于 2010-7-28 16:23 编辑 ]

TOP

本帖最后由 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)
pauseCOPY
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

不会啊,看不懂

TOP

@echo off
for /r f:\test1 %%i in (*) do (
   set "%%~nxi=a"
)
for /r f:\test2 %%j in (*) do (
   if defined %%~nxj echo %%j
)
pauseCOPY

TOP

@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
pauseCOPY
写这段代码用了2个小时,还是感觉不够完整,FOR语句还是不够掌握,SET也没用上,
等想好了再发上来。

TOP

本帖最后由 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>nulCOPY

TOP

回复 3# 梦想种子


    那个sort是个啥?

TOP

返回列表