O script abaixo irá percorrer o diretório atual procurando arquivos que correspondam ao padrão *.ext
. Para cada arquivo encontrado, ele executará o comando dir example.*
(o modificador ~n
retira a extensão %%i
). A saída deste comando dir é canalizada para findstr
para obter a linha indicando o número de arquivos encontrados. for /F
analisa essa linha e armazena o número em %%j
.
Se forem encontrados arquivos "duplicados" com uma extensão diferente, esse número será maior que um. Se o número for um, estamos lidando com uma não-duplicata e podemos começar a executar comandos em %%i
. Neste exemplo, o script simplesmente imprime o nome do arquivo usando echo %%i
.
@echo off
for %%i in (*.ext) do (
for /F %%j in ('dir %%~ni.* ^| findstr /C:"File(s)"') do (
if /I %%j EQU 1 (
echo %%i
)
)
)