I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Je kunt het net zo makkelijk in VB(Script) maken, is een stuk flexibeler.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| @ECHO OFF :: Store current date in a variable in default Locale format FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE /T') DO SET DATE=%%B :: Export registry settings to a temporary file IF EXIST %TEMP%\_TEMP.REG DEL /F/Q %TEMP%\_TEMP.REG START /W REGEDIT /E %TEMP%\_TEMP.REG "HKEY_CURRENT_USER\Control Panel\International" :: Read the exported data FOR /F "tokens=1* delims==" %%A IN ('TYPE %TEMP%\_TEMP.REG ^| FIND /I "iDate"') DO SET iDate=%%B FOR /F "tokens=1* delims==" %%A IN ('TYPE %TEMP%\_TEMP.REG ^| FIND /I "sDate"') DO SET sDate=%%B :: Remove temporary file DEL /F/Q %TEMP%\_TEMP.REG :: Remove quotes SET iDate=%iDate:"=% SET sDate=%sDate:"=% :: Format SORTDATE depending on registry settings IF %iDate%==0 FOR /F "TOKENS=1-4* DELIMS=%sDate% " %%A IN ('DATE /T') DO SET sortdate=%%D%%B%%C IF %iDate%==1 FOR /F "TOKENS=1-4* DELIMS=%sDate% " %%A IN ('DATE /T') DO SET sortdate=%%D%%C%%B IF %iDate%==2 FOR /F "TOKENS=1-4* DELIMS=%sDate% " %%A IN ('DATE /T') DO SET sortdate=%%B%%C%%D |
dit bestandje doet het volgende:
- het haalt eerst de huidige datum op;
- vervolgens haalt het een regel uit het register, waarin staat aangegeven welke locale het systeem gebruikt, concreet of dit dd-mm-jjjj of mm-dd-jjjj is
- vervolgens maakt het programma een environment-variabele aan met de naam sortdate, die je dan weer in een ander programma kunt gebruikten.
1
2
3
4
5
6
7
8
9
10
11
12
13
| @ECHO OFF setlocal CALL C:\jobs\generic\sortdate.bat ECHO on :: hier staat pad naar mijn logdir set logDir=C:\mijnlogdir\ MOVE %logDir%stderr.txt %logDir%stderr\%sortdate%_stderr.txt FOR /F "skip=10" %%i IN ('dir /A:-D-H-S /B /O:-N %logDir%stderr\') DO DEL /Q %logDir%stderr\%%i ENDLOCAL |
Ik hoop dat dit is wat je zoekt. Het heeft bij mij veel tijd gekost om hierachter te komen. Het idee om de registry te gebruiken om je locale uit te lezen heb ik op een of andere website gevonden, en daar heb ik zelf aangepast voor gebruik in sortdate.bat.
N.B.: dit werk in ieder geval onder NT 4.0, 2000 en XP. Ik heb niet geprobeerd of het ook onder windows 95, 98, 98SE of ME werkt, daar is namelijk wel sprake van een iets andere versie van de command-interpreter command.com i.p.v. cmd.exe
[ Voor 11% gewijzigd door Ralluph op 23-05-2003 14:58 . Reden: toevoeging ]
Bedankt voor de tips so far jongens. Oh ja, het formaat van de datum is me niet zo belangrijk ALS ik de dit maar terug kan vinden op datum.
Ik denk dat ik thuis maar wat gaat vogelen met VB want dat is het zo klaar.
maar ook nog even kijken naar de oplossing van Ralluph.
I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning
Verwijderd
VBScript draait praktisch op elke windows machine. Als enige voorwaarde dient de windows script host te draaien. Dus dat is wel degelijk een optie. Knip en plak de volgende code in een tekstbestand en hernoem het van een .txt naar een .vbs. Dubbelklikken et voila!Dinictus schreef op 23 May 2003 @ 15:51:
De reden waarom ik .bat denk is dat ik op mijn werk zit waar ik geen acces heb tot VB oid.
Bedankt voor de tips so far jongens. Oh ja, het formaat van de datum is me niet zo belangrijk ALS ik de dit maar terug kan vinden op datum.
Ik denk dat ik thuis maar wat gaat vogelen met VB want dat is het zo klaar.
maar ook nog even kijken naar de oplossing van Ralluph.
1
2
3
| Dim sMessage sMessage = "He Dinictus, zie VBS werkt gewoon!" MsgBox(sMessage) |
Voor hetgeen jij wilt moet je even kijken naar het FileSystemObject:
http://msdn.microsoft.com...filesystemobjectmodel.asp
Algemene VBscript reference hier te dll: http://msdn.microsoft.com...downloads/list/webdev.asp
Voor voorbeelden verwijs ik je Experts-exchange. Daar worden veel van dit soort scripts gedeeld (tip: doorzoek met Google de inhoud van de site):
http://www.experts-exchange.com/
ik zat echt NET aan vbs te denken! op die manier kan ik NU op mijn werk nog krijgen wat ik wil! Snel aan de slaggggggg. thnks
I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning
Verwijderd
md %DATE%
rd ma
rd di
rd wo
rd do
rd vr
rd za
rd zo
dit maakt automatisch een directory aan met de datum van vandaag
die rd's zijn ervoor hij maakt ook automatisch een map aan met de dag dus das eentje te veel.
K weet niet of dit alles is wat je wou ?
[ Voor 59% gewijzigd door Verwijderd op 23-05-2003 16:23 . Reden: oops ]
dus:
@echo off
md m:\dinictus\%date%
copy m:\dinictus\*.rtf m:\dinictus\%date\
exit
hmz werkt niet, hij gaat hem gewoon %date% noemen bij mij....
[ Voor 29% gewijzigd door Dinictus208 op 23-05-2003 16:36 ]
I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning
Verwijderd
MD %date% resulteert bij mij in VR,
MD "%date%" geeft als resultaat VR 23-05-2003
Ralluph z'n methode zou ook moeten werken.