Windows (8) - batchfiler

Permalänk
Medlem

Windows (8) - batchfiler

Har några (typ 20) mappar med vardera typ 25-100 filer med samma filändelse. På många (men inte alla ) av dessa filer ska jag köra ett enkelt kommando, typ,

normaliseraljud.exe infil.wav infil.mp3

Jag gjorde en enkel batchfil som kör "normaliseraljud.exe %1 %~n1.mp3" och som funkar om jag lägger den i samma mapp som filerna som ska åtgärdas och sedan drar en fil och släpper den på batchfilen.

Tänkte jag kunde dra en hel hoper filer på batchfilen, men då får den ju en lista på många filer och kör bara på den första, jag vill att batchfilen ska anropas en gång för varje fil jag släpper på den, även om jag släpper många samtidigt. Är det möjligt? Nån som fattar vad jag menar? Känner mig rätt kass på Windows batch-filer.

Visa signatur

ASUS P8Z68-v Pro i7 2600K@4.5, 32GB RAM, RX 580, 4K Samsung u24e590, Intel SSD, Seagate SSHD, LG BH16NS55 BD/RW, MacOS Monterey, Win 10+11, Linux Mint
***gamla grejor duger***
Macbook Pro 2009, 8GB RAM, SSD, MacOS Catalina + Windows 10; Macbook Pro 2015 16GB RAM 512GB SSD Radeon Mojave

Permalänk
Medlem
Skrivet av Pirum:

Har några (typ 20) mappar med vardera typ 25-100 filer med samma filändelse. På många (men inte alla ) av dessa filer ska jag köra ett enkelt kommando, typ,

normaliseraljud.exe infil.wav infil.mp3

Jag gjorde en enkel batchfil som kör "normaliseraljud.exe %1 %~n1.mp3" och som funkar om jag lägger den i samma mapp som filerna som ska åtgärdas och sedan drar en fil och släpper den på batchfilen.

Tänkte jag kunde dra en hel hoper filer på batchfilen, men då får den ju en lista på många filer och kör bara på den första, jag vill att batchfilen ska anropas en gång för varje fil jag släpper på den, även om jag släpper många samtidigt. Är det möjligt? Nån som fattar vad jag menar? Känner mig rätt kass på Windows batch-filer.

Kan du inte bara köra det från kommandotolken med asterix för input för att då köra igenom hela diren?

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem

Prova powershell och något sånt här.

PSH> cd c:\mina\wav\ljud PSH> $files = dir -recurse -include *.wav PSH> foreach($fil in $files) { c:\normaliseraljud.exe $fil.fullname ('{0}\{1}.mp3' -f $fil.directory, $fil.basename)}

Permalänk
Medlem

Tack, har ingen erfarenhet av powershell, ska ge det en koll framöver. Det verkar ju bra. Tills vidare löste det sig genom en batchfil typ den här:

:LOOP
"C:\Program Files (x86)\ljudprogram\normaliseraljud.exe" %1 %~n1.mp3
shift
if not (%1)==() goto LOOP
)

batchfilen tar då 1 eller flera filer som argument och harvar igenom dem en och en, tycks funka både från cmd och genom att dra och släppa filer på batchfilen.

Visa signatur

ASUS P8Z68-v Pro i7 2600K@4.5, 32GB RAM, RX 580, 4K Samsung u24e590, Intel SSD, Seagate SSHD, LG BH16NS55 BD/RW, MacOS Monterey, Win 10+11, Linux Mint
***gamla grejor duger***
Macbook Pro 2009, 8GB RAM, SSD, MacOS Catalina + Windows 10; Macbook Pro 2015 16GB RAM 512GB SSD Radeon Mojave

Permalänk
Medlem

Såg att jag gjort ett litet stavfel i scriptet som jag nu åtgördat.
Men bra att det löste sig. Tycker absolut att du ska kika på powershell, det kan förenkla många sysslor och minska behovet av enklare program.