eyvindeb Skrevet 26. januar 2008 Del Skrevet 26. januar 2008 Hei! Driver å lager et batch-script, også lurer jeg på hvordan jeg kan gjøre sånn at når jeg starter fila, også skal skrive inn noe (i dette tilfellet et passord), så viser ikke cmd hva jeg skriver... Sånn som du gjør når du f.eks. skal endre passord på en bruker med "net-user"-kommandoen (kommer ikke på noe bedre eksempel i farta). Jeg kan ikke så mye om batch-scripting enda, og jeg har lett via google, men har ikke funnet noe så langt. Noen som vet hvordan koden vil se ut? Her er koden jeg har lagd for passordet: SET /p Password= SET /a Password=%Password% cls IF %Password% EQU whatever GOTO :pass IF %Password% LSS whatever GOTO :denied IF %Password% GTR whatever GOTO :denied Så greia er at det jeg skriver inn i %Password% ikke skal vises når jeg skriver det.. Takk for svar Lenke til kommentar
Largie Skrevet 27. januar 2008 Del Skrevet 27. januar 2008 Her ville jeg anbefale samme approach som enkle webdesign benytter seg av MD5-hash. Nå er det veeeeeldig lenge siden jeg har batch programmert men here we go: 1. Last ned md5deep.exe fra her http://md5deep.sourceforge.net/ (evnt kan du bruke microsoft sin versjon http://support.microsoft.com/kb/841290) 2. Lag et passord mha md5deep.exe slik: "echo passordetmitt|md5deep.exe" 3. Hashen fra passordet lagrer du: c21aed7792c25619dd9ab7b1534f528f 4. Sjekk script: @ECHO OFF SET Password=c21aed7792c25619dd9ab7b1534f528f FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A echo debug: md5hash input: %md5hash% echo debug: md5hash comp: %Password% IF %Password% EQU %md5hash% GOTO :pass IF %Password% LSS %md5hash% GOTO :denied IF %Password% GTR %md5hash% GOTO :denied :pass echo Passord ok goto end :denied echo Passord er feil goto end :end 5. Lagre scriptet som f.eks passcheck.bat, kjør den med "passcheck.bat <passordetditt>" Passordet vil ikke kunne bli lest ut direkte, men hvis du f.eks skulle ha brukt den i en "net use" kommando kommer du til kort. Lenke til kommentar
eyvindeb Skrevet 28. januar 2008 Forfatter Del Skrevet 28. januar 2008 Her ville jeg anbefale samme approach som enkle webdesign benytter seg av MD5-hash. Nå er det veeeeeldig lenge siden jeg har batch programmert men here we go: 1. Last ned md5deep.exe fra her http://md5deep.sourceforge.net/ (evnt kan du bruke microsoft sin versjon http://support.microsoft.com/kb/841290) 2. Lag et passord mha md5deep.exe slik: "echo passordetmitt|md5deep.exe" 3. Hashen fra passordet lagrer du: c21aed7792c25619dd9ab7b1534f528f 4. Sjekk script: @ECHO OFF SET Password=c21aed7792c25619dd9ab7b1534f528f FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A echo debug: md5hash input: %md5hash% echo debug: md5hash comp: %Password% IF %Password% EQU %md5hash% GOTO :pass IF %Password% LSS %md5hash% GOTO :denied IF %Password% GTR %md5hash% GOTO :denied :pass echo Passord ok goto end :denied echo Passord er feil goto end :end 5. Lagre scriptet som f.eks passcheck.bat, kjør den med "passcheck.bat <passordetditt>" Passordet vil ikke kunne bli lest ut direkte, men hvis du f.eks skulle ha brukt den i en "net use" kommando kommer du til kort. Kan du forklare litt nærmere hvordan man bruker md5deep? Det eneste jeg får opp når jeg kjører md5deep.exe er et komandovidu, og uansett hva jeg skriver der, så skjer det ingenting... Lenke til kommentar
Largie Skrevet 28. januar 2008 Del Skrevet 28. januar 2008 Skriv: md5deep.exe -h See the man page or README.txt file for the full list of options-p - piecewise mode. Files are broken into blocks for hashing -r - recursive mode. All subdirectories are traversed -e - compute estimated time remaining for each file -s - silent mode. Suppress all error messages -S - Displays warnings on bad hashes only -z - display file size before hash -m <file> - enables matching mode. See README/man page -x <file> - enables negative matching mode. See README/man page -M and -X are the same as -m and -x but also print hashes of each file -w - displays which known file generated a match -n - displays known hashes that did not match any input files -a and -A add a single hash to the positive or negative matching set -b - prints only the bare name of files; all path information is omitted -l - print relative paths for filenames -k - print asterisk before filename -o - Only process certain types of files. See README/manpage -v - display version number and exit Den er egentlig laget for å lage en md5-hash av filer. Men du kan benytte den til annet også. Grunnen er at den bruker STDIN delen av DOS til å rute saker, dermed kan du få resultat med å kjøre en echo først og deretter programmet. Prøv f.eks: echo mittpassord|md5deep.exe Den returnerer 2027d58d3695a2f8979cb0e48c9df9cd med engang siden echo "skriver" først, deretter kjøres md5deep Håper du var med på den Funka scriptet el? Lenke til kommentar
eyvindeb Skrevet 28. januar 2008 Forfatter Del Skrevet 28. januar 2008 Åkei... Jeg veit egentlig ikke om det fungerte... Slit du hadde skrevet det, så skjedde det ingenting. Rakk ikke engang å se hva som stod før vinduet ble borte Så gjorde jeg litt om på scriptet: @ECHO OFF SET Password=c21aed7792c25619dd9ab7b1534f528f FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A echo debug: md5hash input: %md5hash% echo debug: md5hash comp: %Password% SET /p Password= SET /a Password=%Password% IF %Password% EQU %md5hash% GOTO :pass IF %Password% LSS %md5hash% GOTO :denied IF %Password% GTR %md5hash% GOTO :denied :pass echo Passord ok PAUSE goto :end :denied echo Passord er feil PAUSE Men jeg veit egentlig ikke åssen kommandoene du hadde skrevet fungerer, for har ikke kommet så langt enda, så jeg har ikke peiling om det ble riktig... I hvertfall. Når jeg nå starter batch-fila kommer dette opp: debug: md5hash input: 2419afda06820e1a585bcb7d5eca5d8edebug: md5hash comp: c21aed7792c25619dd9ab7b1534f528f Også kan jeg skrive passordet under. Men hvordan setter jeg passordet? Jeg prøvde mittpassord, men det fungerte ikke. Så veit ikke om jeg har kommet noe lenger egentlig? Lenke til kommentar
Largie Skrevet 29. januar 2008 Del Skrevet 29. januar 2008 Når du jobber med batchscript er det greit å bruke commandprompten da. Start -> Kjør, skriv "cmd" også trykk enter. %1 parameteren er først parameteren ETTER scriptet. F.eks; dittscript.bat param1 param2 param3 ... Disse kan du hente ut igjen i programmet med %1, %2, %3 variablene %1 = param1 %2 = param2 %3 = param3 Ut fra scriptet jeg har laga kjøres en "forløkke" for å sette variabelen som kjøres: FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A Der %1 er først param. %%A er min variabel for resultatet Lenke til kommentar
LemonNinja Skrevet 24. juni 2009 Del Skrevet 24. juni 2009 er det ikke bare aa skrive @echo off oeverst i den koden han hadde fra foer? 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å