Bakke Skrevet 16. mars 2007 Del Skrevet 16. mars 2007 Jeg selv driver bare med batch for moroskyld, og begynner og gå tom for idèer. Så jeg tenkte jeg skulle lage en tråd hvor du kan poste dine nyttige/kule batch programmer, og kansje bli inspirert av andre. Eventuelt gi tips til hvordan folk kan forbedre programmene sine Lenke til kommentar
hernil Skrevet 16. mars 2007 Del Skrevet 16. mars 2007 Eventuelt gi tips til hvordan folk kan forbedre programmene sine ok jeg slår til her jeg da, trenger litt hjelp. som du ser i denne tråden, har jeg lagd et "program" som sjekker om minnebrikka er satt i og hvis ja lager en snarvei på skrivebordet. hvis den ikke er satt i vil denne snarveien slettes. også til poenget: jeg hadde tenkt å lage en "installasjonsfil" der personen velger hvor filene skal legges. helst skal alt kunne settes på plass med den ene fila, men kan til nøds ha de andre der og. som noen vil skjønne har jeg brukt små klipp og ideer fra andre tråder her på forumet. dette er det jeg har til nå: Klikk for å se/fjerne innholdet nedenfor @echo off set bokstav=%GeckoDrive% set oppstart=wscript.exe "%plassering%\invisible.vbs" "%plassering%\sjekk for minnebrikke2.bat" set minnebrikke.bat=start "" "%bokstav%" set invisible.vbs="CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False" set fil="@echo off :loop If exist "f:\minnebrikke.bat" goto finnes if not exist "%userprofile%\skrivebord\minnebrikke.bat" goto end del "%userprofile%\skrivebord\minnebrikke.bat" :finnes if exist "%userprofile%\skrivebord\minnebrikke.bat" goto end copy "f:\minnebrikke.bat" "%userprofile%\skrivebord\" :end cls @ping.exe 127.0.0.1 -n 3 -w 2000 > nul goto loop" ver /?>%temp%\ver.tmp find /i "Displays" "%temp%\ver.tmp">NUL if %errorlevel% EQU 0 goto Engelsk find /i "Viser" "%temp%\ver.tmp">NUL if %errorlevel% EQU 0 goto Norsk goto end :Engelsk %oppstart% > "%usersprofile%\Start Menu\Startup\" :Norsk %oppstart% > "%usersprofile%\Start-meny\Oppstart\" :end del %temp%\ver.tmp echo denne filen installerer Sjekk for minnebrikke. echo hvor vil du installere filene? set /p plassering= %minnebrikke.bat% > %geckodrive%\minnebrikke.bat %invisible.vbs% > %plassering%\invisible.vbs %fil% > "%plassering%\sjekk for minnebrikke2.bat" får det ikke helt til å funke. er det noen med tips som kan gjøre det enklere og kanskje få det til å funke? takk for hjelpen. Lenke til kommentar
backup Skrevet 16. mars 2007 Del Skrevet 16. mars 2007 Lei av å taste inn passord hver gang du aktiverer Outlook Express? Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "msimn.exe",1,false wscript.sleep(1000) oShell.AppActivate "Outlook Express" wscript.sleep(1000) passord = "xxxxxxx" 'sett inn passordet for Outlopk Express oshell.sendkeys passord & "{ENTER}",True wscript.sleep(1000) oshell.sendkeys "{ENTER}",True Set oShell = Nothing wscript.Quit Lagre scriptet med filetternavnet vbs og som for eksempel mail.vbs. Dobbelklikk ikonet og Outlook Express aktiverers uten at du må taste inn passord. Lenke til kommentar
Bakke Skrevet 16. mars 2007 Forfatter Del Skrevet 16. mars 2007 Hernil, hva er variabelen GeckoDrive? Jeg ser ikke at brukeren gir den en verdi, jeg har testet den i et batch program, men den var tom. Trodde kansje den var som userprofile variabelen... Lenke til kommentar
hernil Skrevet 17. mars 2007 Del Skrevet 17. mars 2007 geckodrive er en snedig liten sak som angir stasjonsbokstaven til å være den bokstaven filen ble kjørt fra. Lenke til kommentar
Bakke Skrevet 17. mars 2007 Forfatter Del Skrevet 17. mars 2007 (endret) Er ikke sikker på om du kan lagre flere linjer i en variabel, men jeg har også prøvd å lage en install fil... [Fjernet kode] Edit: Testet koden og fant ut at den ikke fungerte. .bat filene som programmet lagte fungerte ikke, de ble tomme. Tror dette var et problem i ditt program også... F.eks vil følgende kode ikke fungere: @echo off set fil = net send * hallo %fil% > c:\test.bat exit test.bat vil bli uten innhold Kansje dette vil fungere: @echo off cls set /p plassering=Hvor vil du ha filene: copy minnebrikke.bat "%plassering%\" copy minnebrikke2.bat "%plassering%\" copy invisible.vbs "%plassering%\" FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') DO SET Startup=%%B copy oppstart.bat "%startup%\" IF %errorlevel% == 1 goto feil echo Program installert... pause exit :feil cls echo Feil under installering... echo. pause exit Endret 22. mars 2007 av mhbakke Lenke til kommentar
JohndoeMAKT Skrevet 17. mars 2007 Del Skrevet 17. mars 2007 mhbakke : Her er min løsning på startup/oppstart problematikken med forskjellige språkversjoner av Windows: https://www.diskusjon.no/index.php?showtopi...dpost&p=7048332 Lenke til kommentar
Bakke Skrevet 17. mars 2007 Forfatter Del Skrevet 17. mars 2007 Forstod ikke hele koden, kan du forklare den? Lenke til kommentar
JohndoeMAKT Skrevet 17. mars 2007 Del Skrevet 17. mars 2007 Her under finner du litt bedre forklaring. Klikk for å se/fjerne innholdet nedenfor Først blir reg.exe kjørt med parameter for å hente ut en registernøkkel: C:\>REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup" ! REG.EXE VERSION 3.0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders Common Startup REG_SZ C:\Documents and Settings\All Users\Start Menu\Programs\Startup C:\> Så vil FOR metoden dele opp det som står over i biter delt av DELIMS-verdier, og vil sette variablen "Startup" lik den tredje biten. Filen dosgame.bat fra en mappe opp blir så kopiert til oppstartsmappa. --------- Eksempel : Tekstfil hei.txt : Lars!Per!Jonas FOR /F "tokens=3 delims=!" %%G IN ('TYPE hei.txt') DO echo %%G Vil spytte ut "Jonas" fordi det er den tredje biten i den oppdelte linja. FOR /F "tokens=1 delims=!" %%G IN ('TYPE hei.txt') DO echo %%G Vil spytte ut Lars Her er alles navn: Lars!Per!Jonas Per!Lars!Jonas Jonas!Lars!Per FOR /F "tokens=1 delims=! skip=1" %%G IN ('TYPE hei.txt') DO echo %%G Vil hoppe over første linje og skrive ut første bit i de tre neste linjene, altså Lars Per Jonas. Lenke til kommentar
Bakke Skrevet 20. mars 2007 Forfatter Del Skrevet 20. mars 2007 (endret) Genial løsning på startup/oppstart problemet JohndoeMAKT, takk Har laget et lite program som sletter temp filer osv hver gang du starter maskinen, bare for å få litt liv i tråden Husk at begge filene må ligge i samme mappe når du installerer programmet... Computer clean.bat Klikk for å se/fjerne innholdet nedenfor @echo off title Computer clean cls echo dette programmet rengjør din pc... del "C:\WINDOWS\Temp\*.*" /q /f del "%userprofile%\Recent\*.*" /q /f del "%userprofile%\Siste\*.*" /q /f del "%temp%\*.*" /q /f exit Install.bat Klikk for å se/fjerne innholdet nedenfor @echo off title Install computer clean cls echo Installerer computer clean... FOR /F "tokens=3* delims= " %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do SET startup=%%B IF exist "%startup%\Computer clean.bat" goto eksisterer copy "Computer clean.bat" "%startup%" /Y IF %errorlevel% == 1 goto feil IF %errorlevel% == 0 goto installert :installert cls echo Programmet er installert... echo. pause exit :feil cls echo Problem under installering / avinstallering... echo. pause exit :eksisterer cls set /p valg=Programmet eksisterer, vil du avinstallere? ja/nei IF %valg% == ja goto ja IF %valg% == nei goto nei goto eksisterer :ja del "%startup%\Computer clean.bat" IF %errorlevel% == 1 goto feil echo Programmet er nå avinstallert... echo. pause exit :nei exit Endret 21. mars 2007 av mhbakke Lenke til kommentar
hernil Skrevet 24. mars 2007 Del Skrevet 24. mars 2007 har lagd en ny "installasjonsfil" jeg får til å lage filene (untatt den som skal legges i oppstarten), men de blir bare tomme. her er koden: Klikk for å se/fjerne innholdet nedenfor @echo off FOR /F "tokens=3* delims= " %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do SET startup=%%B set oppstartsfil=oppstart.txt set usynlig=invisble.txt set snarvei=minnebrikke.txt set fil="sjekk for minnebrikke2.txt" echo Hvor vil du installere filene? set /p plasering= set poppstartsfil="%startup%\oppstart.bat" set pusynlig="%plasering%\invisble.vbs" set pfil="%plasering%\sjekk for minnebrikke2.bat" set psnarvei="%plasering%\minnebrikke.bat" %oppstartsfil% > %poppstartsfil% %usynlig% > %pusynlig% %fil% > %pfil% %snarvei% > %psnarvei% if exist %plasering%\minnebrikke.bat goto suksess echo feil pause exit :suksess msg * suksess noen tips? (jeg har lagd .txt filer med det som bat/vbs filene skal "fylles" med. de ligger i samme mappe som "installasjonsfila".) Lenke til kommentar
JohndoeMAKT Skrevet 24. mars 2007 Del Skrevet 24. mars 2007 Kommentarer: "%fil% > %pfil%" skal være "copy %fil% %pfil% /y", eventuelt "move". Hvorfor sette både filnavn, destinasjon og fil+destinasjon? %fil% > %pfil% Kan omskrives til: copy %fil% %plassering%\%fil% IMO er det også bedre å skrive "set /P katt=Skriv inn verdi :" Lenke til kommentar
Bakke Skrevet 24. mars 2007 Forfatter Del Skrevet 24. mars 2007 (endret) %oppstartsfil% > %poppstartsfil%%usynlig% > %pusynlig% %fil% > %pfil% %snarvei% > %psnarvei% Prøv å ha hermetegn ("") rundt variablene... Edit: Posta på likt med JohndoeMAKT... Endret 24. mars 2007 av mhbakke Lenke til kommentar
hernil Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 ok har endra det til dette: Klikk for å se/fjerne innholdet nedenfor @echo off FOR /F "tokens=3* delims= " %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do SET startup=%%B set oppstartsfil=oppstart.txt set usynlig=invisble.txt set snarvei=minnebrikke.txt set fil="sjekk for minnebrikke2.txt" echo Hvor vil du installere filene? set /p plasering= copy %oppstartsfil% > "%startup%\oppstart.bat" /y copy %usynlig% > "%plasering%\invisble.vbs" /y copy %fil% > "%plasering%\sjekk for minnebrikke2.bat" /y copy %snarvei% > "%plasering%\minnebrikke.bat" /y if exist %plasering%\minnebrikke.bat goto suksess echo feil pause exit :suksess msg * suksess jeg får kopiert filene (unntatt den som skal legges i oppstarten), men de får ikke riktig "innhold" bat filene får Filen kan ikke kopieres til seg selv. 0 fil(er) ble kopiert. i seg, mens vbs fila fårSystemet finner ikke angitt fil. legger med alle filene sånn at kanskje noen kan finne ut av det.minnebrikke_sjekk.zip takk for all hjelp hittil! Lenke til kommentar
JohndoeMAKT Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 Ikke > når du bruker copy. Lenke til kommentar
hernil Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 (endret) et skritt nærmere. mangler bare oppstartsfila. ingenting skjer med oppstartsfila, når jeg prøver koden: FOR /F "tokens=3 delims= " %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do SET startup=%%B funker det ikke, prøvde å skrive bare FOR /F "tokens=3* delims= " %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do SET startup=%%B start "" "%startup%" men da kommer jeg bare til skrivebordet. prøvde også: FOR /F "tokens=3* delims= " %%A in ('REG QUERY "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Startup"') do SET startup=%%B start "" "%startup%" da kommer jeg også bare til skrivebordet. hva gjør jeg feil? Endret 25. mars 2007 av hernil Lenke til kommentar
JohndoeMAKT Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 Leste du min siste linje i posten hvor jeg først postet koden? OBS: Etter "delims" skal det være en tab og en space. Dette vil du ofte ikke få kopiert rett fra en browser. Du bør også passe på at det ikke sniker seg inn linjeskift og annet når du kopierer kode. Sørg for at linjebrytning (word wrap) er avslått og at alle linjer er på én linje. Fungerende kode: http://spackfish.com/hw/test6.bat Lenke til kommentar
Bakke Skrevet 25. mars 2007 Forfatter Del Skrevet 25. mars 2007 (endret) Har du husket space og tab etter delims=? Edit: Posta på likt med JohndoeMAKT igjen Endret 25. mars 2007 av mhbakke Lenke til kommentar
Damp Skrevet 25. mars 2007 Del Skrevet 25. mars 2007 (endret) Et script som viser info. om hvilket grafikkkort du har. Leste om det her om dagen. Kan være nyttig. :!: Edit: JohndoeMAKT, du har rett! Lagde en ny... graphics_hw.bat echo off title Graphics HW cls echo ---------------------------------------------: debug <debug_hex.bat echo _ >>log.txt echo *ID: -%random%. -%date%. -%time%.>>log_01.txt echo ---------------------------------------------:>>log_01.txt debug <debug_hex.bat>>log_01.txt echo ---------------------------------------------: echo Logged to file log_01.txt pause exit debug_hex.bat d c000:0040 d c000:0090 Q clear_log.bat echo Graphics HW >log_01.txt Lag en tekstfil i samme directory som disse to, log_01.txt Endret 26. mars 2007 av pcbygger91 Lenke til kommentar
JohndoeMAKT Skrevet 26. mars 2007 Del Skrevet 26. mars 2007 pcbygger91 : Uten graphics_hw.bat blir vel ikke mye utført i det scriptet. 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å