Windows batch IF & ELSE... hjälp tack!

Permalänk
Medlem

Windows batch IF & ELSE... hjälp tack!

Mappstruktur med filer...

Mappen test och en submap med namn test
I submappen finns test.txt
i dir mappen finns text1.txt och text2.txt

Problemet är att programmet hittar till test.txt men ifall jag tar bort den ska den hitta text1 men den hittar den inte för den låser sig till subkategorin.
Fråga 1 : Hur går jag tillväga för att få scriptet att förstå att det ska tillbaka till dir mappen när den ska starta text1.txt?
Fråga 2 : När jag är klar med det och låt säga att text1.txt inte finns hur skriver jag då för att text2.txt ska startas?

Detta är vad jag har fått till.
Google vill inte hjälpa mig eller så söker jag fel...

CD ..\test\test IF EXIST test.txt. ( start test.txt. ) ELSE text1.txt. ( start text1.txt. ) ELSE text2.txt ( start text2.txt. ) pause

Skulle bara djupt tacksamm ifall man kunde få hjälp med detta!

Visa signatur

Stationär: RTX 3090 OC MSI TRIO X 24GB | Ryzen 9 5950X | G.Skill Trident Z NEO 3600mhz 32GB | Noctua NH-D15 Chromax | Corsair HX1000i | Asus Rog Strix X570-F Gaming | Samsung 980 PRO 2TB | Samsung 970 EVO 512 GB | Samsung 850 PRO 512 GB | Seagate SSHD 2TB | Be Quiet! Base Pro 900 Silver Rev.2

Jobbdator: MacBook Pro 16" i7 6C, 16GB ram DDR4, AMD Radeon Pro 5300M 4GB

Permalänk
Medlem
Skrivet av klotim:

Mappstruktur med filer...

Mappen test och en submap med namn test
I submappen finns test.txt
i dir mappen finns text1.txt och text2.txt

Problemet är att programmet hittar till test.txt men ifall jag tar bort den ska den hitta text1 men den hittar den inte för den låser sig till subkategorin.
Fråga 1 : Hur går jag tillväga för att få scriptet att förstå att det ska tillbaka till dir mappen när den ska starta text1.txt?
Fråga 2 : När jag är klar med det och låt säga att text1.txt inte finns hur skriver jag då för att text2.txt ska startas?

Detta är vad jag har fått till.
Google vill inte hjälpa mig eller så söker jag fel...

CD ..\test\test IF EXIST test.txt. ( start test.txt. ) ELSE text1.txt. ( start text1.txt. ) ELSE text2.txt ( start text2.txt. ) pause

Skulle bara djupt tacksamm ifall man kunde få hjälp med detta!

Kanske något i stil med

cd path\to\base\dir IF EXIST test\test.txt ( start test\test.txt ) ELSE IF EXIST text1.txt ( start text1.txt. ) ELSE IF EXIST text2.txt ( start text2.txt ) pause

Men sedan kan man ju ifrågasätta om det är så kul med batchfiler rent allmänt.

Powershell kanske vore trevligare, iaf om det ska bli något mer avancerat i slutänden?

Visa signatur

AMD Ryzen9 5900X || Gigabyte X570 Ultra || RTX 3090 FE || Gskill Trident Z 3600 64GB || Samsung 950 Pro 512GB || Samsung 960 Pro 1024GB || XB270HU 1440p IPS G-Sync

Permalänk
Medlem
Skrivet av evil penguin:

Kanske något i stil med

cd path\to\base\dir IF EXIST test\test.txt ( start test\test.txt ) ELSE IF EXIST text1.txt ( start text1.txt. ) ELSE IF EXIST text2.txt ( start text2.txt ) pause

Men sedan kan man ju ifrågasätta om det är så kul med batchfiler rent allmänt.

Powershell kanske vore trevligare, iaf om det ska bli något mer avancerat i slutänden?

Det funkade! Tack !
Haha jadu, jag gör detta av rent nöje då jag inte har så mycket att göra för tillfället så varför inte lära sig lite batch osv? haha!

Visa signatur

Stationär: RTX 3090 OC MSI TRIO X 24GB | Ryzen 9 5950X | G.Skill Trident Z NEO 3600mhz 32GB | Noctua NH-D15 Chromax | Corsair HX1000i | Asus Rog Strix X570-F Gaming | Samsung 980 PRO 2TB | Samsung 970 EVO 512 GB | Samsung 850 PRO 512 GB | Seagate SSHD 2TB | Be Quiet! Base Pro 900 Silver Rev.2

Jobbdator: MacBook Pro 16" i7 6C, 16GB ram DDR4, AMD Radeon Pro 5300M 4GB

Permalänk
Medlem

Hej

Tror detta är lämpligast i powershell jag
Om du vill testa ifall katalogen finns kan du göra följande och repetera tills filen den existerar

$Source = 'Path' $File = '*.txt' $SourceTest = Test-Path ($source+$File) if ($SourceTest -eq $false) { do {$source = Read-Host ‘Hittar ingen .txt fil i $Source’ $SourceTest = Test-Path ($source+$File) } until ($SourceTest -eq $true) }

Det du kan göra, kanske inte så snyggt är att göra flera IF statser tex IF ($Source -eq $True) {Gör detta osv...}

Visa signatur

Kamera: D800
Optik:Nikkor 24-70mm f/2.8, Nikkor 70-200 f/2.8 VR, Sigma 50mm f/1.4, 500m f/4 VR