Batch- If exist / Rename av 4 filer

Trädvy Permalänk
Medlem
Plats
Södertälje
Registrerad
Feb 2005

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..

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Nov 2006

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

Trädvy Permalänk
Medlem
Plats
Södertälje
Registrerad
Feb 2005
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:)

Trädvy Permalänk
Medlem
Plats
SweClockers forum
Registrerad
Aug 2012
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 )

Guide: Roota din HTC - BB-Kod-knappar på Prisjakt

              Min burk - Kvävekyld till 80%
8700K@stock
1070 Ti@stock

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

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Nov 2006

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

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Maj 2013

Kör Powershell...

Trädvy Permalänk
Medlem
Plats
Södertälje
Registrerad
Feb 2005

Tack till alla för era svar, skall läsas genom

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@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

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Södertälje
Registrerad
Feb 2005
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:/