This topic is 1859 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I downloaded nvidia texture tools command line utilites to be able to convert some textures to "bump maps". The problem is that it will take to long to do it by hand for all images, so i tried to automate it with bat, but my knowledge for command line sintaks is limited:

 for %%X in (*.dds) do nvcompress -tonormal %%X %%X_bump.dds 
Last parameter is out file name.

If i have input images in that directory:
 Image1.dds Image2.dds Image3.dds 

Output will be:
 Image1.dds_bump.dds Image2.dds_bump.dds Image3.dds_bump.dds 

But i want to remove first extension so that output would be:
 Image1_bump.dds Image2_bump.dds Image3_bump.dds 

Help.

EDIT: Solved. Last param should be:
 %%~nX_bump.dds  Edited by belfegor

##### Share on other sites
Windows Vista or later? Learn and use PowerShell. It's seriously amazing:
 get-childitem '*.dds' | foreach-object { & .\nvcompress -tonormal $_.Name$_.Name "$($_.Name)_bump.dds" } 

Works with .NET, so you can load almost every assembly and directly work with it in PowerShell.

##### Share on other sites

Windows Vista or later? Learn and use PowerShell. It's seriously amazing:

And seriously verbose! It's very painful to use from the command line, but it's great for scripting tasks.

##### Share on other sites

And seriously verbose! It's very painful to use from the command line, but it's great for scripting tasks.

It doesn't need to be verbose; that's what aliases are for:
ls *.dds |%{$a=$_.Name;&.\nvcompress -tonormal $a$a "$($_.FullName)_bump.dds")}

##### Share on other sites
Ow, that reminds me of Unix shells (though those are still worse when it comes to legibility).