Batch- If exist / Rename av 4 filer

Permalänk
Arvid Nordqvist-mannen

Batch- If exist / Rename av 4 filer

Antagligen skitenkel nöt att knäcka.

Jag vill pyssla ihop en batchfil som kollar om 4 filer existerar (fil1, fil2, fil3, fil4)
Efter denna koll får jag frågan om vad en av dessa filer skall byta namn till Install.wim (errorlevel)

Väljer jag Val #1 skall filen byta namn till "Install" (Kod ser ut som "if errorlevel 1 ren fil1 install.wim")

Nästa gång jag startar skriptet skall dessa fyra filer kollas igen, denna gång får man ju ett fel, en fil har inte samma namn som sist.
Nu ska / eller i början innan frågan sker, skriptet namnge alla filer korrekt., alltså till ursprungsvärdena.

Hur skulle detta ske?

"If exists file 1-4 if else ren Install.wim xxx.wim"

Där xxxx.wim representerar den fil som inte finns.

Syftet är endast för det roliga, jag skulle kunna byta namn själv på dem innan jag installerar Windows..

Permalänk
Medlem

Har du gjort något försök själv?
Finns säkert bra guides om du googlar efter någon "windows batch guide".

Permalänk
Arvid Nordqvist-mannen
Skrivet av nikwad:

Har du gjort något försök själv?
Finns säkert bra guides om du googlar efter någon "windows batch guide".

Hade jag inte sökt hade jag inte frågat...
Kan vara så att jag inte riktig hittar rätt söktermer:)

Permalänk
Medlem
Skrivet av tcntad:

Hade jag inte sökt hade jag inte frågat...
Kan vara så att jag inte riktig hittar rätt söktermer:)

Spara filnamnet på den nuvarande install.wim på ett annat ställe. Ex:

@echo off setlocal EnableDelayedExpansion set files[1]=fil 1 set files[2]=fil 2 set files[3]=fil 3 set files[4]=fil 4 if exist current for /f "tokens=*" %%a in (current) do ( ren install.wim "%%a" del current ) set counter=1 set choices=/c :loop if not exist !files[%counter%]! ( goto :break ) echo %counter%. !files[%counter%]! set choices=%choices%%counter% set /a counter=%counter% + 1 goto :loop :break echo %counter%. Avsluta choice %choices%%counter% /n /m "V„lj: " set choice=%errorlevel% if %choice% gtr 0 if %choice% neq %counter% ( ren "!files[%choice%]!" install.wim echo !files[%choice%]! > current )

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

http://stackoverflow.com/questions/1223721/in-windows-cmd-how...
http://stackoverflow.com/questions/14013145/windows-batch-fil...
http://stackoverflow.com/questions/10552812/declaring-and-usi...

Där har du lite nyttigt läsande, vilket borde ge dig grunderna för att kunna klippa och klistra ihop något fungerande grundläggande

Permalänk

Kör Powershell...

Visa signatur
Permalänk
Arvid Nordqvist-mannen
Permalänk
Legendarisk

@tcntad: Har du tillgång till PowerShell istället? Här är ettt exempel på hur du skulle kunna lösa olika moment med hjälp av det:

$options = @("fil1.wim", "fil2.wim", "fil3.wim", "fil4.wim") $install = "install.wim" $selected = "" # Om installationsfilen redan existerar iterera över listan av # alternativ och återställ namnet för den första som saknas: if((Test-Path $install)) { foreach($option in $options) { if((Test-Path $option) -eq $false) { Rename-Item $install $option -Verbose break } } } # Välj en fil: $options | %{ Write-Output $_ } while($options -notcontains $selected) { $selected = Read-Host -Prompt "Välj en fil från listan" } # ... och byt namn: Rename-Item $selected $install -Verbose

Visa signatur

Abstractions all the way down.

Permalänk
Arvid Nordqvist-mannen
Skrivet av Tunnelsork:

@tcntad: Har du tillgång till PowerShell istället? Här är ettt exempel på hur du skulle kunna lösa olika moment med hjälp av det:

$options = @("fil1.wim", "fil2.wim", "fil3.wim", "fil4.wim") $install = "install.wim" $selected = "" # Om installationsfilen redan existerar iterera över listan av # alternativ och återställ namnet för den första som saknas: if((Test-Path $install)) { foreach($option in $options) { if((Test-Path $option) -eq $false) { Rename-Item $install $option -Verbose break } } } # Välj en fil: $options | %{ Write-Output $_ } while($options -notcontains $selected) { $selected = Read-Host -Prompt "Välj en fil från listan" } # ... och byt namn: Rename-Item $selected $install -Verbose

Interesting. Har W10 på ala burkar, Powershell är tillgängligt.
Tack! Är alltför dålig på sånt här:/