Just nu i M3-nätverket
Gå till innehåll
MvS

Köra sfc, DISM m fl program från USB

Rekommendera Poster

Jag har knåpat ihop en .bat-fil och lagt på USB-sticka med vilken man enkelt kan köra systemverktyg ( sfc, DISM och chkdsk ) på datorn. Jag är ingen hejare på DOS-programmering utan har bara "klippt & klistrat" från andra programsekvenser jag hittat på nätet. Den fungerar förvisso utmärkt som ett smidigt verktyg men man måste köra .bat-filen från den drive som man vill fixa. Detta innebär att först måste kopiera över den till aktuell dators HD innan den kan användas. Jag tänker att det bara måste finns ett smidigare sätt där jag vill kunna få upp en lista med aktiva diskar att välja från typ: ("Välj disk: C, D, E... etc)  UTAN att behöva kopiera .bat-filen till aktuell HD. Någon som har ett bra tips?

Bifogar skriptet som zippad fil!

 

//Magnus 

Systemverktyg.zip

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
8 timmar sedan, skrev MvS:

Jag har knåpat ihop en .bat-fil och lagt på USB-sticka med vilken man enkelt kan köra systemverktyg ( sfc, DISM och chkdsk ) på datorn. Jag är ingen hejare på DOS-programmering utan har bara "klippt & klistrat" från andra programsekvenser jag hittat på nätet. Den fungerar förvisso utmärkt som ett smidigt verktyg men man måste köra .bat-filen från den drive som man vill fixa. Detta innebär att först måste kopiera över den till aktuell dators HD innan den kan användas. Jag tänker att det bara måste finns ett smidigare sätt där jag vill kunna få upp en lista med aktiva diskar att välja från typ: ("Välj disk: C, D, E... etc)  UTAN att behöva kopiera .bat-filen till aktuell HD. Någon som har ett bra tips?

Bifogar skriptet som zippad fil!

 

//Magnus 

Systemverktyg.zip 6 kB · 3 downloads

Om du utökar kommandot med Volymens enhetsbokstav, t ex ”chkdsk d:” så kontrolleras d:

Ge kommandot chkdsk /?” så visas fler alternativ och växlar för kommandot. 
 

 

 

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tack för tipset!
Jag vill emellertid att skriptet ska kunna användas på olika systemdiskar vid behov. Sålunda behöver jag en funktion där användaren kan manuellt ange måldisken via en "option"-funktion eller något liknande...
//Magnus
 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det var ett kul initiativ. Jag gillar bat-filen, men du bör döpa om den till .CMD istället för .BAT

Fast den egentliga stora skillnaden mellan dessa båda är att ett sk. command script eller .cmd klarar av att hantera error level.

Difference Between CMD and BAT

Citat

1. The BAT extension is used by DOS and Windows while the CMD extension is for Windows NT Command Scripts

2. The BAT extension can be interpreted by COMMAND.COM and CMD.EXE while the CMD extension can only be interpreted by CMD.EXE

3. The errorlevel always changes state in CMD but only on errors in BAT

 

Mig veterligt tror jag inte det går att göra exakt som du vill.

SFC tex. kör endast på den disk där operativsysmet finns, men det finns en variant tex.

 

SFC /scannow /OFFWINDIR=remotedrive:\Windows /OFFBOOTDIR=remotedrive:

Alltså som exempel så blir det detta:

SFC /scannow /OFFWINDIR=F:\Windows /OFFBOOTDIR=F:\

 

Problemet här är att kommandot SFC i sig inte är ett kommando utan ett program som bara finns i Windiws biblioteket C:\Windows\System32 och därför kan du inte bara starta detta från ett externt media som i sig inte innehåller programmet och med tex. chkdsk kan man inte kopiera detta heller för att köra nån annanstans ifrån.

I så fall måste du även ha detta på stickan och då blir det trubbel med piratkopiering och annat.

 

Skall du få detta att fungera från sticka, måste du finna en väg att från stickan köra programmen från den disk där dom ligger och det blir heller inte lätt, eftersom många antivirus-program kommer att säga stopp. Tex. mitt Norton antivurus tillåter inte att program körs från externt media utan vidare och särskilt inte sådana som kräver administratörsrättigheter. Dom plockas bort direkt.

 

Förövrigt kan man nog (?) skapa ett bootbart media på USB-sticka från Windows 10 som kör både SFC och dism, men då skapar man ett bootbart media direkt från den Windows disk där dessa finns och det är väl heller inte det du vill göra?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tack för svar!
Grejen är att jag skapar en exe-fil av bat-varianten och jag tänkte att det skulle bara var himla käckt om det hade gått att få in i gränssnittet en option om användaren till äventyrs skulle ha fler Op installerade på olika diskar! Men detta är inget som jag ligger sömnlös om nätterna och grubblar på så jag nöjer mig med det jag har!
Kul att du gillade idén i alla fall!
//Magnus 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
På 2020-02-22 på 14:09, skrev MvS:

Jag tänker att det bara måste finns ett smidigare sätt där jag vill kunna få upp en lista med aktiva diskar att välja från typ: ("Välj disk: C, D, E... etc)  UTAN att behöva kopiera .bat-filen till aktuell HD. Någon som har ett bra tips?

Nu var det länge sedan jag höll på med bat filer, men du borde kunna skicka med enhetsbokstaven som en parameter in i ditt script.

Systemverktyg.bat c:
Systemverktyg.bat d:

Om du fick till detta borde i teorin ditt script kunna köras från din USB sticka och att du anger för vilken enhet det ska köras mot.

 

Hittade några exempel på detta som kanske kan appliceras på ditt script

https://stackoverflow.com/questions/26551/how-can-i-pass-arguments-to-a-batch-file

https://www.tutorialspoint.com/batch_script/batch_script_variables.htm

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Tack för alla inputs!
Tror mig nu ha löst det så att verktyget startar i användarens systemkatalog förutsatt den finns i C-katalogen.
Om någon är intresserad så finns programmet bifogat!

//Magnus

WinSysRep.zip

Redigerad av MvS

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...