Gå til innhold

Post dine nyttige batch programmer


Anbefalte innlegg

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
Videoannonse
Annonse
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. :no: er det noen med tips som kan gjøre det enklere og kanskje få det til å funke? :hmm:

 

takk for hjelpen.

Lenke til kommentar

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

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 av mhbakke
Lenke til kommentar

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

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 :p 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 av mhbakke
Lenke til kommentar

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? :hmm:

 

(jeg har lagd .txt filer med det som bat/vbs filene skal "fylles" med. de ligger i samme mappe som "installasjonsfila".)

Lenke til kommentar

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
%oppstartsfil% > %poppstartsfil%

%usynlig% > %pusynlig%

%fil% > %pfil%

%snarvei% > %psnarvei%

Prøv å ha hermetegn ("") rundt variablene...

 

Edit: Posta på likt med JohndoeMAKT...

Endret av mhbakke
Lenke til kommentar

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år
Systemet 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

et skritt nærmere. :thumbup:

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

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? :hmm:

Endret av hernil
Lenke til kommentar

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

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! :w00t: 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 av pcbygger91
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...