En kolay yolu, gördüğüm gibi, ikinci bir toplu iş dosyasını işlemek için çağıran bir for döngüsü kullanmak ve bu ikinci dosyayı taban adını aktarmaktır.
Göre /? yardım, basename şık ~ n seçeneği kullanılarak çıkarılabilir. Böylece, temel komut dosyası şunu okuyacaktır:
for %%f in (*.in) do call process.cmd %%~nf
Daha sonra process.cmd dosyasında,% 0 taban adını içerdiğini varsayın ve buna göre hareket edin. Örneğin:
echo The file is %0
copy %0.in %0.out
ren %0.out monkeys_are_cool.txt
Tek bir komut dosyasında bunu yapmanın daha iyi bir yolu olabilir, ancak her zaman toplu iş dosyasında bir döngü için birden çok komutun nasıl çekileceği konusunda biraz puslu oldum.
EDIT: Bu harika! Bir şekilde, bir FOR döngüsünde çok satırlı bloklar yapabileceğinizi gösteren dokümanlardaki sayfayı kaçırmıştım. Geri dönüp şimdi bazı toplu iş dosyalarını yeniden yazmak zorunda kalacağım ...