Avatar billede stry Nybegynder
28. august 2003 - 21:49 Der er 38 kommentarer og
1 løsning

If-sætning i batch fil

Jeg skal bruge en if-sætning som "måler" på ugedagen.
Altså:
If not sunday then
goto end
else
"noget kode"

Men jeg ved ikke helt hvordan den skal skæres.
Håber nogen kan hjælpe :-)
Avatar billede omen Nybegynder
28. august 2003 - 22:00 #1
Avatar billede retaxes Nybegynder
28. august 2003 - 22:06 #2
husk at skrive det sådan

If not "sunday" then
Avatar billede nmh Nybegynder
28. august 2003 - 22:07 #3
Jeg mener ikke du kan aflæse ugedagen ved hjælp af en dos-kommando, men du akn kalde en batchfil med ugedagen som parameter, og så kan i batch-filen lave betingede hop, der styres af den overførte ugedag.

Har du mulighed for at lave et kald af form batchfil.bat monday?
Avatar billede stry Nybegynder
28. august 2003 - 22:08 #4
Ja, men hvordan trækker jeg ugedagen ud så jeg har noget at sammenligne med?
Avatar billede nmh Nybegynder
28. august 2003 - 22:11 #5
trække ugedagen ud?
Det kan du ikke gøre med en batch-ordre.
Avatar billede retaxes Nybegynder
28. august 2003 - 22:11 #6
nmh> ja, du har nok ret!
Avatar billede nmh Nybegynder
28. august 2003 - 22:13 #7
Men skal det være en batch-fil? Hvad med et VBscript isedet?
Avatar billede retaxes Nybegynder
28. august 2003 - 22:13 #8
det kan man til gengæld med 4NT fra http://www.jpsoft.com/
Avatar billede nmh Nybegynder
28. august 2003 - 22:14 #9
Hvad skal du have bat-filen til at gøre?
Avatar billede stry Nybegynder
28. august 2003 - 22:16 #10
Det kan godt være et VBscript, men der er om muligt på endnu mere bar bund.
Jeg har dog kodet i VBA, ved ikke om det hjælper?
Avatar billede stry Nybegynder
28. august 2003 - 22:16 #11
bat-filen defragmenterer alle drev.
Avatar billede stry Nybegynder
28. august 2003 - 22:18 #12
ser dette ikke lovende ud?
http://www.batch.hpg.ig.com.br/index.htm
Avatar billede nmh Nybegynder
28. august 2003 - 22:22 #13
men der er jo en defrag-funktion med i win xp.
Hvorfor bruger du ikke den?
Du kan jo få den startet af win xp, når du har lyst ved at bruge planlagte opgaver.
Avatar billede stry Nybegynder
28. august 2003 - 22:24 #14
Ja, her defragmenterer jeg alle drev på en gang og derefter lukkes PC'en.
Avatar billede retaxes Nybegynder
28. august 2003 - 22:27 #15
du kan bruge denne til defragmentering, det kan den sættes til at gøre når du ikke bruger maskinen

http://www.oo-software.com
Avatar billede nmh Nybegynder
28. august 2003 - 22:28 #16
Et VBscript ville nok kune klare dette. Her kan man aflæse ugedagen og derefter får startet dit bat-fil.
Avatar billede stefanfuglsang Juniormester
28. august 2003 - 22:32 #17
Hvis det stadig er relevant med en batch-fil, så er der her en batchfil der skriver "det er [ikke] torsdag" når det [ikke] er tordag:
(NB: der er ikke mellemrum i "echo.". Bemærk også at ved errorlevel 1 er også errorlevel 0 sat - derfor konstruktionen med goto)

@echo off
echo. | date | find "Tor" > nul
if errorlevel 1 echo det er ikke tordag
goto end
if errorlevel 0 echo det er torsdag
:end


mvh Stefan
Avatar billede stry Nybegynder
28. august 2003 - 22:32 #18
Er der nogen som har kigget på mit link og kan gennemskue hvordan det virker og om det er det jeg skal bruge?
Avatar billede stry Nybegynder
28. august 2003 - 22:36 #19
>>Stefan
Jeg kan ikke få det til at virke, cmd-prompten lukker med det samme :-(
Avatar billede stefanfuglsang Juniormester
28. august 2003 - 22:40 #20
prøv at tilføje en linie:
pause
eller: kør det fra et command-vindue
eller: gå ind i egenskaber for batch-filen og vælg at den ikke skal afslutte, når den er kørt
Avatar billede nmh Nybegynder
28. august 2003 - 22:41 #21
Jeg har været inde på linket, og der er jo mange spændende bat-filer.
Men er det, du ønsker at få defragmenteret hver søndag?
Avatar billede stry Nybegynder
28. august 2003 - 22:43 #22
>>Stefan
Gider du at lave et "køreklart" eksempel som jeg kan copy-paste?
:-)
Avatar billede nmh Nybegynder
28. august 2003 - 22:44 #23
stefan> din fil forudsætter, at date faktisk kommer med en ugedag. Min date skriver kun 28.08.2003
Avatar billede stry Nybegynder
28. august 2003 - 22:45 #24
Det jeg gerne vil have er betinget afvikling af en bat.fil
Avatar billede nmh Nybegynder
28. august 2003 - 22:45 #25
find gennemsøger det der kommer fra date og søger efter #Tor", og i min win xp kommer der altså aldrig navnet på en ugedag, når man giver ordren date.
Avatar billede nmh Nybegynder
28. august 2003 - 22:46 #26
stry> Og betingelsen skal styres af dagen i ugen?
Avatar billede stry Nybegynder
28. august 2003 - 22:48 #27
Ja, lige nøjagtigt :-)
Avatar billede Slettet bruger
28. august 2003 - 22:48 #28
Denne finder ugedagen.

@echo off
For /f "Tokens=1" %%i in ('date /t') do call :dag=%%i

pause

:dag
  set Ugedag=%1
  echo %Ugedag%
Goto :EOF
Avatar billede stefanfuglsang Juniormester
28. august 2003 - 22:49 #29
Ok, jeg har testet dette på WinME, her er ugedagen med og batchfilen virker her.
Mon ikke man kan vælge mellem langt og kort datoformat i XP?
Prøv om date /? (i et kommandovindue) giver et fingerpeg.

Jeg kan desværre ikke deltage mere i aften
mvh
Stefan
Avatar billede nmh Nybegynder
28. august 2003 - 22:53 #30
jeg kan ikke få date til at give en ugedag. Nu har jeg prøvet med date /?, og det er tilsyneladende ikke muligt i win xp.
Avatar billede stry Nybegynder
28. august 2003 - 22:54 #31
>> tpo
Hos mig giver din løsning datoen 28-08-2003, men vi nærmer os et-eller-andet.
Avatar billede Slettet bruger
28. august 2003 - 22:57 #32
Engelsk W2K

C:\>date /t
to 28-08-2003

Det er åbenbart noget andet på en XP
Avatar billede nmh Nybegynder
28. august 2003 - 22:59 #33
ja tilsyneladende. Det er egentlig utroligt, at man ændrer sådanne ting.
Avatar billede nmh Nybegynder
28. august 2003 - 23:01 #34
Nu har jeg ikke mere tid i aften, men i morgen vil jeg se om jeg ikke lige kan lave et VBscript, der starter en bat-fil, hvis det er søndag.
Avatar billede Slettet bruger
28. august 2003 - 23:05 #35
fandt dette på nettet:

93 possible Regional Options/Settings available on Windows XP:
61 give the Day-of-the-Week as the first token from DATE /T
32 do not
Avatar billede stry Nybegynder
28. august 2003 - 23:10 #36
>>nmh
tak for indsatsen "so far".
Avatar billede nmh Nybegynder
28. august 2003 - 23:37 #37
Nå jeg kunne ikke lade være med at lave scriptet nu:
Gem nedenstående i en fil med navnet Start.vbs  (f.eks)
Den skal ligge i samme underkatalog, som den batchfil, man vil have eksekveret. I mit eksempel hedder bat-filen BatchJob.bat.
Der arbejdes med ugedage.
søndag er 1, mandag er 2,..., torsdag er 5. Den er sat til søndag lige nu.
Du starter processen ved blot at klikke på filen start.vbs.

Option Explicit
dim shell
if weekday(now)=1 then
  set shell=Wscript.CreateObject("Wscript.shell")
  Shell.run "BatchJob.bat"
end if
Avatar billede stry Nybegynder
28. august 2003 - 23:42 #38
Det kører perfekt!
Tak for hjælpen :-)
Avatar billede nmh Nybegynder
28. august 2003 - 23:45 #39
selv tak, det var så lidt. Takker for point.
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