首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进Windows批处理脚本

改进Windows批处理脚本
EN

Stack Overflow用户
提问于 2014-04-30 08:43:40
回答 2查看 63关注 0票数 0

下面的脚本通过一个文件夹及其子文件夹搜索,然后将每个文件与第二个文件夹中的文件进行比较。如果找到,它回显是一条消息,说明文件被找到了。

我的问题是如何增强这个脚本来搜索第二个文件夹及其子文件夹中的文件?我只关心扩展名(我不关心它在哪个文件夹/子文件夹中找到,只是一个重复的文件存在并导致编译器错误)。

我认为其中一种方法是将所有文件名输出到一个文件中,然后将该文件作为第二部分的输入并通过第二个文件夹循环,但我确信一定会有一个更干净的方法。

O/S: Windows 2003

代码语言:javascript
复制
:bof
    rem @echo off
    cls
    setlocal
:init
    set dirA=X:\tst\pfsrc\
    set dirB=X:\tst\cbsrc\
    if not exist "%dirA%" echo dirA not found & goto :EOF
    if not exist "%dirB%" echo dirB not found & goto :EOF
    for /f "delims=" %%I in ('dir /b /a:-d /s "%dirA%" 2^>NUL') do if exist "%dirB%%%~nxI" echo %%~nxI does exist in "%dirB%" 
:eof
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-30 09:32:22

谢谢你让我走上正确的轨道:-)代码现在起作用了

代码语言:javascript
复制
:bof
    @echo off
    cls
    setlocal
:init
    set dirA=X:\tst\pfsrc\
    set dirB=X:\tst\cbsrc\
    if not exist "%dirA%" echo dirA not found & goto :EOF
    if not exist "%dirB%" echo dirB not found & goto :EOF
    for /f "delims=" %%I in ('dir /b /a:-d /s "%dirA%" 2^>NUL') do for /r "%dirB%" %%d in (%%~nxI) do if exist "%%d" echo %%d
:eof
票数 0
EN

Stack Overflow用户

发布于 2014-04-30 08:55:56

这个节选将尝试递归地在%%a的所有目录中找到%dirB%

代码语言:javascript
复制
for /d /r %%d in (%dirB%\*) do (
  if exist "%%d\%%~nxa" echo %%d\%%~nxa
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23383527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档