Avatar billede dm013 Nybegynder
07. januar 2003 - 20:23 Der er 27 kommentarer og
2 løsninger

Dos problem på win2k

Hejsa eksperter:

mit problem er at jeg på en winXP maskine har lavet en cmd-fil som skal lave nogle mapper og kopiere nogle filer over i dem, den sidste mapper er dagsdato eks. [07-01-2003] det virker fint i winXP, men i win2k får jeg denne besked '07-01-2003]' is not recognized as an internal or external command, operable program or batch file

koden:
if not exist z:\aktueldb\Backup\[%date%] md :\aktueldb\Backup\[%date%]

dm013
Avatar billede soreno Praktikant
07. januar 2003 - 20:39 #1
Jeg ved ikke lige om det er så relevant i dit tilfælde, men det er ofte en god ide at indkapsle en path i "", altså:
if not exist "z:\aktueldb\Backup\[%date%]" md "z:\aktueldb\Backup\[%date%]"

Jeg kom lige til at se at du manglede et "z" i din path til md - var det en copy/paste fejl ?
Avatar billede dm013 Nybegynder
07. januar 2003 - 20:53 #2
det var en copy paste fejl som sagt virker den fint i winXP, har lige checket at den er med i filen på win2k :)
Avatar billede dm013 Nybegynder
07. januar 2003 - 20:58 #3
soreno>>>> kan det lade sig gøre at oprette en mappe ved navn klokkeslet feks 17:10:15 [171015] ?
Avatar billede soreno Praktikant
07. januar 2003 - 21:00 #4
Det kan det vel godt, men hvordan får man så lige fat i tiden ?
Måske %time% ?
Avatar billede dm013 Nybegynder
07. januar 2003 - 21:02 #5
den har jeg prøvet duede ikke
Avatar billede dm013 Nybegynder
07. januar 2003 - 21:10 #6
det virkede med at sætte "" omkring så nu har jeg en mappe med datoen, tak
hvis jeg beder den om at oprette mappen [%time%] for jeg beskeden: "The parameter is incorrect"
Avatar billede dm013 Nybegynder
07. januar 2003 - 21:11 #7
for jeg= får jeg
Avatar billede soreno Praktikant
07. januar 2003 - 21:19 #8
Jeg sidder ikke lige ved en Windows maskine lige nu..

Men hvad står der hvis du skriver
c:\echo %time%

(det kunne jo være output f.eks. er "17:18:19" - og det vil pga. ":" ikke være et gyldigt filnavn)
Avatar billede dm013 Nybegynder
07. januar 2003 - 21:24 #9
der står  "21:21:39,24"

jeg er med på at det er ": " der gør at jeg ikke kan oprette mappen, det var der for at jeg ville høre om du evt kender en metode til at trække %time% ind og fjerne : og evt , og returnere "212139252 f.eks via en exe fil ?
Avatar billede soreno Praktikant
07. januar 2003 - 21:34 #10
tjaaa, man kunne vel forholdsvis simpelt lave en replace af ":" til "" via et lille c program.
Men det vil stadig ikke være nok.

Hvordan skal time appendes til path, altså:
z:\aktueldb\Backup

skal appendes \212139252

så resultatet bliver
z:\aktueldb\Backup\212139252

Men jeg kender ikke til nogen mulighed i DOS til at gøre det.. ?
Avatar billede tonnybrandt Nybegynder
08. januar 2003 - 09:47 #11
Prøv at downloade datetime fra denne url:
http://plop.at/index.php

Brug den til at sætte din egen variabel MY_DATE øverst i batfilen:

Brug denne syntaks:

datetime set MY_DATE=%d%m%Y > date1.bat
call date1
echo %MY_DATE%

output
08012003
Avatar billede tonnybrandt Nybegynder
08. januar 2003 - 09:50 #12
C:\users\default>datetime
PLOP DateTime v2.0 Coded by Elmar Hanlhofer  http://plop.at

datetime [string]

output of date and time + string

%d  day number
%D  day string
%M  month number
%y  year 2digits
%Y  year 4digits
%H  hour
%M  minute
%S  second

Examples:  datetime Today is %D %d/%m/%y  Time:  %H:%M
output is: Today is Sun 27/10/02  Time:  16:00

write into a file:  datetime %d/%m/%y > date.txt
Avatar billede soreno Praktikant
08. januar 2003 - 10:42 #13
tonnybrandt>> Hvordan vil du så få sammenflettet det du har fundet med denne linie:

if not exist "z:\aktueldb\Backup\[%time%]" md "z:\aktueldb\Backup\[%time%]"

??
Avatar billede tonnybrandt Nybegynder
08. januar 2003 - 10:58 #14
Ved at han sætter sin egen variabel i toppen af batchfilen og bruger DEN istedet for de indbýggede.

En lille test udført i hånden i et dosvindue:

C:\users\default>datetime set MY_DATE=%d%m%Y > date1.bat
C:\users\default>call date1
C:\users\default>if not exist x:\%MY_DATE% md x:\%MY_DATE%
C:\users\default>dir x:\
Volume in drive X is DRIVE_X
Volume Serial Number is 64FD-28BD

Directory of x:\

01/08/2003  10:47      <DIR>          08012003
+ mange andre selvfølgelig
Og man kan sætte en MY_TIME på nøjagtigt same måde f.eks:
C:\users\default>datetime set MY_TIME=%H%M%S > date1.bat
C:\users\default>date1
C:\users\default>if not exist x:\%MY_TIME% md x:\%MY_TIME%
C:\users\default>dir x:
Volume in drive X is DRIVE_X
Volume Serial Number is 64FD-28BD

Directory of X:\

01/08/2003  10:47      <DIR>          08012003 < Blev lavet med MY_DATE
01/08/2003  10:55      <DIR>          105437  < Blev lavet med MY_TIME
Avatar billede dm013 Nybegynder
08. januar 2003 - 13:20 #15
Hej Tonny>>>>

jeg kan ikke få det til at fungerer, den opretter godtnok både date1.bat"tom" men også både en fil der hedder if og dir
Avatar billede tonnybrandt Nybegynder
08. januar 2003 - 13:31 #16
Jeg tester det lige i en batfil lidt senere. Er på arbejde og har lidt travlt den næste ½ time.
Avatar billede dm013 Nybegynder
08. januar 2003 - 13:58 #17
lyder super, takker
Avatar billede dm013 Nybegynder
08. januar 2003 - 14:03 #18
jeg har smidt datetime.com, ned i c:windows\system32
fordi jeg ikke vil have de filer den opretter til at ligge på skrivebordet, jeg har jo kun brug for at vide at den opretter mappen [%MY_TIME%], som skal ligge i forlængelse af denne sti X:\aktuel\backup\[%date%]\
Avatar billede dm013 Nybegynder
08. januar 2003 - 14:08 #19
My_time skal blot være time og minutter
Avatar billede tonnybrandt Nybegynder
08. januar 2003 - 14:10 #20
Hmm... jeg stødte vist ind i de samme problemer som dig. Ihvertfald skal der dobbelt % for at de enkelte % tegn overlever. Men jeg ender også med en tom fil. Jeg roder lige lidt videre med det.

datetime set MY_DATE=%%d%%m%%Y > c:\date1.bat
call c:\date1.bat
if not exist x:\%MY_DATE% md x:\%MY_DATE%
Xcopy c:\ntldr x:\%MY_DATE%
Avatar billede soreno Praktikant
09. januar 2003 - 16:30 #21
Jeg er netop over icq blevet kontaktet af BiTByte, som er manden bag "datetime", og han skriver at det ikke virker fordi parameteret er ændret da der var problemer med bl.a. %%d

Det vil være korrekt at bruge:
datetime set MY_DATE=!d!m!Y > c:\date1.bat

Sikkert under forudsætning af at der bruges nyeste version - som kan hentes her:
http://plop.at
Avatar billede tonnybrandt Nybegynder
09. januar 2003 - 17:21 #22
Tak til Soreno, for at have løst problemet med % tegnet

Følegende lille batchfil fik jeg til at virke på min XP:

datetime set MY_DATE=!d!m!Y> c:\date1.bat
datetime set MY_TIME=!d!m!Y\!H!M> c:\time1.bat

call c:\date1.bat
call c:\time1.bat
if not exist c:\%MY_DATE% md c:\%MY_DATE%
if not exist c:\%MY_DATE%\%MY_TIME% md c:\%MY_DATE%\%MY_TIME%

copy c:\date1.bat c:\%MY_DATE%\%MY_TIME%
Avatar billede dm013 Nybegynder
09. januar 2003 - 17:52 #23
det er muligt at jeg er et større fjols end jeg selv troede !!!
Men hvis jeg kopiere den kode du har postet tonny, så får jeg følgende mappe struktur: C:\!d!m!Y\!d!m!Y\!H!M

Derfor vil jeg gerne vide hvor du har Datetime.com placeret i din filstruktur?
Avatar billede dm013 Nybegynder
09. januar 2003 - 17:58 #24
UPS, havde lige glemt at aktiverer den.
Avatar billede tonnybrandt Nybegynder
09. januar 2003 - 21:42 #25
Er dit problem løst ?
Jeg downloadede den seneste version og placerede den i c:\windows\system32
Avatar billede dm013 Nybegynder
09. januar 2003 - 21:49 #26
jeps det kører som det skal. mange tak for hjælpen.

soreno>>> hvis du vil have del af kagen :) så smid et svar.
Avatar billede soreno Praktikant
09. januar 2003 - 21:51 #27
Ok, men ikke for stor en bid :-)
Avatar billede dm013 Nybegynder
09. januar 2003 - 21:55 #28
Endnu en gang tak for hjælpen
Avatar billede tonnybrandt Nybegynder
09. januar 2003 - 21:56 #29
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