baguett Skrevet 17. november 2011 Del Skrevet 17. november 2011 Hei. Fant ikke noen "request" seksjon, så poster denne her: Bruker shutdown-commanden så å si hver kveld fordi jeg ofte ser på film og når filmen er ferdig orker jeg ikke gå helt til PCen for å skru den av igjen. Det jeg vil ha er en batch fil som kjører shutdown (shutdown -s -t 12000/16000) der jeg kan velge selv om jeg vil ta shutdown'en om 12- eller 16000 sekunder. Tenkte noe ala "trykk Y for 12000 og I for 16000 sekunder." Dette er sikkert noe en erfaren kan snekre sammen på 1 minutt, så håper noen gidder ta seg bryet og sende meg koden Lenke til kommentar
mongojarle Skrevet 17. november 2011 Del Skrevet 17. november 2011 (endret) heiasnn der, ta en titt på dette og se om du skjønner noe: @echo off cls echo. echo This is a replacement computer for XXX. echo Please type A or B, according to the computer you want to replace. echo (A is BRIDGE, B is ECR). echo. echo WARNING! echo THE COMPUTER SHOULD BE IN ITS DESIGNATED PLACE, echo AND BE CONNECTED TO BOTH NETWORKS! echo IF IT IS NOT PROPERLY INSTALLED, THE SETUP WILL FAIL! echo. goto menu :MENU SET /P M=Type A or B, then press ENTER. (Or press X to turn off the computer). if %M% == a goto CONFIRMA if %M% == b goto CONFIRMB if %M% == x goto OFF :CONFIRMA cls echo. echo You have selected to set up this replacement computer as PCA. SET /P C=Please confirm you selection with Y, or N to go back. if %C% == y goto PCA if %C% == n goto MENU echo. :PCA cls echo. echo Please sit back and wait for the setup to complete. echo. netsh interface ip set address name="Local Area Connection" static 10.0.1.120 255.255.255.0 netsh interface ip set address name="Local Area Connection 2" static 10.0.0.20 255.255.255.0 copy c:\Citect\citect_PCA.ini "C:\Program Files\Citect\CitectSCADA 7\Bin\citect.ini" echo. echo. echo The setup will now sleep in 30 seconds, echo to be able to set up the network interfaces! sleep 30 net use Z: \\10.0.1.110\Citect sleep 5 regedit /s C:\XXX\startup.reg sleep 2 net localgroup administrators XXX /delete goto end :CONFIRMB cls echo. echo You have selected to set up this replacement computer as PCB. SET /P C=Please confirm you selection with Y, or N to go back. if %C% == y goto PCB if %C% == n goto MENU echo. :PCB cls echo. echo Please sit back and wait for the setup to complete. echo. netsh interface ip set address name="Local Area Connection" static 10.0.1.110 255.255.255.0 netsh interface ip set address name="Local Area Connection 2" static 10.0.0.10 255.255.255.0 copy c:\Citect\citect_PCB.ini "C:\Program Files\Citect\CitectSCADA 7\Bin\citect.ini" echo. echo. echo The setup will now sleep in 30 seconds, echo to be able to set up the network interfaces! sleep 30 net use Z: \\10.0.1.120\Citect sleep 5 regedit /s C:\XXX\startup.reg sleep 2 net localgroup administrators XXX /delete goto end :OFF echo. echo Goodbye... shutdown -s -t 10 -f -c "You have chosen to abort the setup and turn off the computer. The setup will start next time you power on." :end cls echo. pause shutdown -r -t 10 -f -c "Congratulation, the seup is complete! The system will restart, and boot into XXX!" Alle XXX er firmanavnet dette er laget for, vil ikke ha dette opp i søk på google. Endret 17. november 2011 av jale 1 Lenke til kommentar
baguett Skrevet 17. november 2011 Forfatter Del Skrevet 17. november 2011 heiasnn der, ta en titt på dette og se om du skjønner noe: ------ Hmm, skal se hva jeg får til, men takk :] Lenke til kommentar
mongojarle Skrevet 17. november 2011 Del Skrevet 17. november 2011 (endret) Ok, skal gi deg litt mer hjelp, ettersom jeg bare sitter her uansett... :MENU SET /P M=Type A or B, then press ENTER. (Or press X to turn off the computer). if %M% == a goto CONFIRMA if %M% == b goto CONFIRMB if %M% == x goto OFF Dette er en meny. Den kan ha så mange valg som du vil. Her må man trykke A, B eller X for å gjøre noe, alle andre taster er ugyldige. Hvis man trykker A, så går programmet til sekvensen som heter :CONFIRMA :CONFIRMA cls echo. echo You have selected to set up this replacement computer as PCA. SET /P C=Please confirm you selection with Y, or N to go back. if %C% == y goto PCA if %C% == n goto MENU echo. Dette er et nytt valg, som egentlig bare spør om du er sikker på valget ditt... Trykker man Y for Yes, så hopper programmet til selve koden som skal utføres :PCA :PCA cls echo. echo Please sit back and wait for the setup to complete. echo. netsh interface ip set address name="Local Area Connection" static 10.0.1.120 255.255.255.0 netsh interface ip set address name="Local Area Connection 2" static 10.0.0.20 255.255.255.0 copy c:\Citect\citect_PCA.ini "C:\Program Files\Citect\CitectSCADA 7\Bin\citect.ini" echo. echo. echo The setup will now sleep in 30 seconds, echo to be able to set up the network interfaces! sleep 30 net use Z: \\10.0.1.110\Citect sleep 5 regedit /s C:\XXX\startup.reg sleep 2 net localgroup administrators XXX /delete goto end Her gjør skriptet alt som skal gjøres. I dette tilfelle setter den to IP-adresser, kopierer en fil, mapper opp en nettverksstasjon, legger til en fil i registeret og sletter administrator gruppen fra pc'en. Til slutt hopper den til :END :end cls echo. pause shutdown -r -t 10 -f -c "Congratulation, the seup is complete! The system will restart, and boot into XXX!" END gjør nesten det du vil gjøre, den skrur av pc'en... Du vil da ha en meny, lik som en av de over, men du har to forskjellige shutdown-koder. En som slår av etter 12000 sekunder, og en som slår av etter 16000 sekunder. I menyen velger du hvilken kode du skal gå til. Ditt skript kan se slik ut: :MENU SET /P M=Trykk y eller i, for å velge henholdsvis 12000 sekunder eller 16000 sekunder før maskinen slås av. if %M% == y goto A12000 if %M% == i goto B16000 :A12000 cls echo. shutdown -s -t 12000 :B16000 cls echo. shutdown -s -t 12000 ikke testet... Endret 17. november 2011 av jale 1 Lenke til kommentar
aklla Skrevet 17. november 2011 Del Skrevet 17. november 2011 (endret) Denne er testet Ca det samme som koden over, utenom en feil som blir gjort der, om man ikke trykker på verken i eller y, så slår den av etter 12000 @echo off :start set /p valg="trykk Y for 12000 og I for 16000 sekunder." if %valg%==i goto i if %valg%==y goto y if %valg%==q exit echo feil valg, velg Y for 12000 og I for 16000 goto start :y shutdown -s -t 12000 -f exit :i shutdown -s -t 16000 -f exit Endret 17. november 2011 av aklla waits for alice 1 Lenke til kommentar
mongojarle Skrevet 17. november 2011 Del Skrevet 17. november 2011 Skal jeg prøve å huske på neste gang jeg sender en PC ut med dette scriptet AWFA Lenke til kommentar
baguett Skrevet 17. november 2011 Forfatter Del Skrevet 17. november 2011 Takk til begge to for hjelp, men tror jeg klarte det med min egen kode :O @echo off cls echo. echo Shutdown? echo A = 12000 secounds - B = 16000 secounds. echo. goto menu :MENU SET /P M=Type A or B, then press ENTER. if %M% == a goto CONFIRMA if %M% == b goto CONFIRMB if %M% == x goto OFF :CONFIRMA cls echo. echo You have selected to shutdown your computer in 12000 secounds. SET /P C=Please confirm you selection with Y, or N to go back. if %C% == y goto PCA if %C% == n goto MENU echo. :PCA cls echo. echo Please sit back and wait for the setup to complete. echo. echo. shutdown -s -t 12000 echo. goto end :CONFIRMB cls echo. echo You have selected to shutdown your computer in 16000 secounds. SET /P C=Please confirm you selection with Y, or N to go back. if %C% == y goto PCB if %C% == n goto MENU echo. :PCB cls echo. echo Please sit back and wait for the setup to complete. echo. echo. shutdown -s -t 16000 echo. Funka fint her, men skal teste en av deres for å se om de er bedre Lenke til kommentar
aklla Skrevet 17. november 2011 Del Skrevet 17. november 2011 (endret) Den skal funke, om du taster inn riktig bokstav. Velger trykker du på f.eks D ved første valg vil du få opp "You have selected to shutdown your computer in 12000 secounds." CMD går nedover så lenge den ikke får beskjed om å gjøre noe annet, så om verken "if %M% == a goto CONFIRMA" eller "if %M% == b goto CONFIRMB" stemmer hopper den videre til neste kommando. Det samme gjelder etter CONFIRMA, velger du feil der slår den av pc`n etter 12000 sekunder "if %M% == x goto OFF" gjør ingenting da OFF ikke finnes. "goto END" gjør heller ingenting da END ikke finnes. Det er få vidt jeg kan se slike feil flere steder også i koden din... Endret 17. november 2011 av aklla waits for alice Lenke til kommentar
baguett Skrevet 17. november 2011 Forfatter Del Skrevet 17. november 2011 .... Ah, prøvde bare en gang x( Men får å få bort at den skal skru seg av selv om jeg ikke skriver inn verken A eller B skal jeg bare sette "\n" bak da slik du hadde i din kode? END og OFF fjerna jeg rett etter jeg posta koden, glemte at de var der Lenke til kommentar
aklla Skrevet 17. november 2011 Del Skrevet 17. november 2011 \n var egentlig for å bytte linje, men det funka ikke helt som det skulle. Fjernet den... Men, nei, det må lages slik at det alltid kan hoppe til neste linje om f.eks en if-setning ikke stemmer. Hva vil du gjøre om du ett eller annet sted skriver inn en m i stedet for en gyldig bokstav? Lenke til kommentar
baguett Skrevet 17. november 2011 Forfatter Del Skrevet 17. november 2011 aha, tror jeg forstår litt nå, derfor du hadde goto: start etter "feil valg" Lenke til kommentar
mongojarle Skrevet 17. november 2011 Del Skrevet 17. november 2011 Forresten, jeg har brukt funksjonen sleep... ettersom jeg husker, så finnes ikke den i windowsXP og senere, så jeg lastet den ned (er en EXE fil) fra Microsoft og la den inn i System32 mappen... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå