繁体   English   中英

批量比较 2 个目录和 output 来自第二个目录的文件夹名称

[英]Batch compare 2 directories and output names of folders from 2nd directory

我想比较 2 个不同目录中是否存在同名的子文件夹。 有时,相同的名称可能在源目录中拼写为小写,在目标目录中拼写为大写。 我想 output 来自目标目录的子文件夹的名称。

@echo off

FOR /F "delims=" %%a IN ('dir /b "%SystemDrive%\Folder1"') do (

    IF exist "%SystemDrive%\Folder2\%%~a" (

    echo %%a

    )
)

exit

我怎样才能做到这一点?

@echo off
FOR /D %%a IN ("%SystemDrive%\Folder1\*"') do (
    for %%b in ("%SystemDrive%\Folder2\%%~nxa") do echo %%~nxb
    )
)

如果文件在folder2中不存在,则for %%b根本不会计算,因此您不需要if exist

在 PowerShell 中,这可以通过多种方式完成,一种是这样的:

$dir1 = Get-ChildItem -Path C:\Users\Abraham\Desktop\dir1 -name
$dir2 = Get-ChildItem -Path C:\Users\Abraham\Desktop\dir2 -Name
$Compare = Compare-Object -ReferenceObject $dir1 -DifferenceObject $dir2 -ExcludeDifferent -IncludeEqual
$compare | Select-Object -ExpandProperty InputObject

在这种情况下,您只需要更改每个目录的路径即可。 它应该只返回两个位置的文件夹名称。

很抱歉介入,我知道这不是 PowerShell ......只是偶然发现了这个并想提供帮助。

如果不允许请删除。

我找到了怎么做:

@echo off
FOR /F "delims=" %%a IN ('"dir /b %SystemDrive%\Folder1\*"') do (
    for %%b in ("%SystemDrive%\Folder2\%%~a") do echo %%~nxb
    )
)

感谢大家的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM