Avatar billede vels Nybegynder
04. oktober 2006 - 23:29 Der er 10 kommentarer og
1 løsning

if sætning

Hej

jeg vil gerne have en if sætning der lige finder ud af om nuværende kl er mindre en et at kl, men det virker ikke:

@echo off
IF %time% LSS 17:00 (
echo Time er mindre 17:00
) ELSE (
echo Time er STØRRE 17:00
)

Får fejlen:
00 was unexpected at this time.
tallet ændre sig hvergang jeg køre scriptet.

Nogle bud på hvordan jeg kontroller om klokken er mindre eller større end et andet kl
Avatar billede bertelbrander Novice
05. oktober 2006 - 00:12 #1
%Time% indholder tegn som : og , dem kan man ikke bruge i en sammenligning direkte.
Så du skal lave %time% om til et heltal:
for /F "tokens=1,2 delims=:" %%I in ("%Time%") do set MyTime=%%I%%J

Og så bruge %MyTime%:

IF %MyTime% LSS 1700 (
  echo Time er mindre 17:00
) ELSE (
  echo Time er STØRRE 17:00
)
Avatar billede vels Nybegynder
05. oktober 2006 - 08:40 #2
hej smider du lige et svar?

Lige et tillægs spørgsmål... kan man regne med tid f.eks. dagsdato - 7 dage = en dato kan man det i en bat fil?
Avatar billede bertelbrander Novice
05. oktober 2006 - 19:43 #3
Man kan godt regne med datoer i bat filer.
Man splitter datoen op med en for sætning som den jeg lavede før, derpå bruger man set /A til at regne.
Men det er mere end almindelig bøvlet.
Så hvis du kan finde en anden løsning er det at foretrække.
Hvilket problem er det du vil have løst?
Avatar billede vels Nybegynder
05. oktober 2006 - 20:04 #4
Det er fordi jeg er ved at lave et automatisk backup script. Det er lavet sådan et det skal uploade til en ftp. På ftp'en vil jeg gemme 7 dages backup filer (zip) som hedder %dato%.zip
Så vil jeg have sådan at den skal slette dags dato -7 altså den ældste backup fil. Er der en anden måde man kan gøre det på?
Avatar billede bertelbrander Novice
05. oktober 2006 - 20:36 #5
Hvis du kun har disse .zip filer til at ligge i mappen kan du finde den ældste:
for /F "skip=7" %I in ('dir /B /O-D *') do echo %I

Som vil udskrive navnet på den ældste.
Hvis du bruger det i en .bat fil skal du bruge %%I og ikke %I

Du kan også putte navnet i en variabel:
for /F "skip=7" %I in ('dir /B /O-D *') do set %Oldest%=%I
Avatar billede vels Nybegynder
05. oktober 2006 - 20:53 #6
okay giftigt...
smider du et svar?

hvor læser man noget mere om consol og det her?
Avatar billede bertelbrander Novice
05. oktober 2006 - 22:39 #7
Det er lidt giftigt.
Jeg bruger normal python hvis jeg skal bruge noget mere avanceret.

Hvis du kører kommandoen help i en dos-prompt får du en liste over alle de kommandoer der findes. Skriver du så help kommando får du hjælp til kommando.
Du kan finde den samme information under "Hjælp og Support" fra start menuen, prøv at søge på batch.

Jeg samler ikke på point.
Avatar billede vels Nybegynder
06. oktober 2006 - 09:06 #8
oki jamen jeg takker for hjælpen :)

python, er det noget ala perl? eller
Avatar billede bertelbrander Novice
06. oktober 2006 - 20:37 #9
Ja, python er noget i stil med perl. Syntaxen der dog knap så kringlet.

Du kan finde det her:
http://python.org/
Avatar billede vels Nybegynder
07. oktober 2006 - 23:08 #10
hvad dato format skal mine zip filer have?


Noget helt andet...
hvis nu jeg vil have første fil fra det her output:
dir /O-S

Er jeg så ude i en for ting?
Avatar billede vels Nybegynder
07. oktober 2006 - 23:52 #11
fandt løsning... i help :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester