Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need to write a batch file which will run a command for files with .ext extension excluding "duplicated" files which have same filename but two different extensions (e.g. .ext and .txe).

I tried this but I don't know how to exclude a file with same filename as found .txe file:

@echo off 
forfiles /c "cmd /c if @ext==\"ext\" 
    if not @ext==\"txe\" 
     echo @fname.ext" 
pause 
share|improve this question
2  
Great story, what's the question? :) What have you got so far? Where are you getting stuck? –  Ƭᴇcʜιᴇ007 Mar 17 '13 at 19:03
    
@techie007 I tried this but I don't know how to exclude a file with same filename as found .txe file. '@echo off forfiles /c "cmd /c if @ext==\"ext\" if not @ext==\"txe\" echo @fname.ext" pause' –  Koboos Mar 17 '13 at 19:30

1 Answer 1

up vote 1 down vote accepted

The script below will traverse the current directory looking for files matching the pattern *.ext. For every file found, it will execute the command dir example.* (the modifier ~n strips the extension off %%i). The output of this dir command is piped into findstr to get the line indicating the number of files found. for /F parses this line and stores the number in %%j.

If 'duplicate' files with a different extension were found, this number would be greater than one. If the number is one, we're dealing with a non-duplicate and can start running commands on %%i. In this example, the script merely prints the filename using 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
        )
    )
)
share|improve this answer
    
It looked complicated at first but after analysing it's clear for me. And of course it does the job perfectly. Thanks @MarcksThomas –  Koboos Mar 17 '13 at 19:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.