{title}

Hallo, ich habe eine Frage und versuche es einfach zu machen. Ich möchte einen Batch für Sicherungszwecke erstellen. Die Quelle ist C: Data. Das Ziel ist E: . Ich möchte ein Verzeichnis mit dem Namen Data in E-Laufwerk mit dem Datum daneben erstellen, z. B. Data 20. September 2011. Format des Datums ist eigentlich egal. Bisher habe ich folgende @ echo offrobocopy "C: Data" "E: ."/MIRpauseIch möchte in der Lage sein, eine weitere exakte Kopie des Ordners "Data" zu erstellen und ihn "Data" mit dem angehängten Datum zu nennen. Jede Hilfe wäre sehr dankbar. Vielen Dank

Verwenden Sie die Variable% date%, wo immer Sie möchten. robocopy "C: Data" "E: Data% date% "/MIR sollte funktionieren, wenn nicht so ähnlich

Dies ist Unsinn, wenn% date% Schrägstriche enthält. Wie "03/06/2011". Welches ist, was% date% hier sagt. Bitte posten Sie keine wilden Vermutungen. Oder etwas ähnliches". Gerade getestete Lösungen. Diejenigen, die funktionieren.

für/f "tokens = 1-5 delims = /" %% d in ("% date%") kopiere "C: Data" "E: data - %% e - %% f - %% g"/MIRbetter?

OK, aber warum gehen Sie nicht auf das Problem der unterschiedlichen lokalen Datumsformate ein?

Dieser getdate-Batch ist praktisch, um die Datumsfelder zu bestimmen, ohne die Registrierung lesen zu müssen: Hier ist meine Version von GetDate.bat. Ich habe es in allen 'englischen' Datumsformaten in XP, Vista, Win7 versucht. Wenn Sie den Namen einer Umgebungsvariablen übergeben (keine% in dem Argument), wird es auf das aktuelle Datum gesetzt. Yyyymmdd wird zurückgegeben in der Fehlerebene als Zahl, kann aber als% ymd% für ein 8-stelliges Datum ohne Trennzeichen verwendet werden. Code: @echo off & SetLocal EnableDelayedExpansion & goto: start: GetDate.bat echo.GetDate Setzt das Datum in die Umgebungsvariable, EnVar als: mm- dd-yyyyecho.Usage: GetDate mdy ^ & setze ymd = %% errorlevel %%, ^ (benutze %% anstatt ^^! in der Kommandozeile) echo.Usage: GetDate mdy ^ & setze ymd = ^^! errorlevel ^^ !, ^ (verwenden Sie ^^! anstelle von %% in script ^) echo.Wenn kein Argument übergeben wird, wird das Datum in mm-tt-jjjj formatecho angezeigt. Gibt yyyymmdd auf Fehlerebene zurück, unabhängig davon, ob Envar als Argument oder notecho.Works auf einem NT übergeben wird/2K/XP/Vista/Win7-Rechner unabhängig von regionalen DatumseinstellungenEndLocal & exit/b: Startset p1 =% ~ 1 & if/i! P1! gleich /? gehe zu: GetDatefor/f "tokens = 1-4 delims =/-" %% a in ("% date%") rufen auf: s_fixdate %% a %% b %% c %% dif/i 1% yy% lss 20 setze "yy = 0% yy%" if/i% yy% lss 80 (set yy = 20% yy%) else (falls% yy% lss 100 set yy = 19% yy%) falls definiert p1 EndLocal & call set "% ~ 1 =% mm% -% dd% -% yy%" & exit/b% yy %% mm %% dd% EndLocal & echo.% mm% -% dd% -% yy% & exit/b% yy %% mm %% dd%: s_fixdateif/i "% 1: ~ 0,1%" gtr "9" shiftfor/f "skip = 1 tokens = 2-4 delims = (-)" %%e in ('date ^

Er sagte, Format ist kein Problem, lesen Sie den ersten Beitrag

Ich spreche von Ihrer "Lösung", die nicht für jedes lokale Datumsformat funktioniert.

Hier ist die aktualisierte Lösung, um das aktuelle Datum in mm-tt-jjjj festzulegen. Dies ist eine Batch-Datei, die die Registrierung nicht lesen muss, wenn Sie einen Variablennamen als Argument übergeben, das auf das Datum in mm-tt-jjjjerrorlevel festgelegt wird to yyyymmddIt kann jetzt das Format 05-Jun-11 mit geringfügigen Änderungen an dem verarbeiten, was ich zuvor gepostet habe.Code: @echo off & SetLocal EnableDelayedExpansion & goto: start: GetDate : GetDate mdy ^ & setze ymd = %% errorlevel %%, ^ (benutze %% anstatt ^^! In der Kommandozeile) echo.Usage: GetDate mdy ^ & setze ymd = ^^! Errorlevel ^^ !, ^ (benutze ^^ ! statt %% im Skript ^) echo.Wenn kein Argument übergeben wird, wird das Datum im Format MM-TT-JJJJ als Echo ausgegeben. Gibt JJJJMTT auf Fehlerebene zurück, unabhängig davon, ob Envar als Argument oder als notecho.Works unter NT/2K/XP/Vista übergeben wird/Win7-Rechner unabhängig von den meisten regionalen DatumseinstellungenEndLocal & exit/b: Startset p1 =% ~ 1 & if/i! P1! gleich /? gehe zu: GetDatefor/f "tokens = 1-4 delims =/-" %% a in ("% date%") rufen auf: s_fixdate %% a %% b %% c %% dif/i 1% yy% lss 20 setze "yy = 0% yy%" if/i% yy% lss 80 (set yy = 20% yy%) else (falls% yy% lss 100 set yy = 19% yy%) falls definiert p1 EndLocal & call set "% ~ 1 =% mm% -% dd% -% yy%" & exit/b% yy %% mm %% dd% EndLocal & echo.% mm% -% dd% -% yy% & exit/b% yy %% mm %% dd%: s_fixdateif/i "% 1: ~ 0,1%" gtr "9" shiftfor/f "skip = 1 tokens = 2-4 delims = (-)" %%e in ('date ^

Zowie! Hier ist genug Code, um ein Space Shuttle zu starten. Ich konnte den Code bereinigen und ausführen, bin mir aber nicht sicher, was ich mit meinen Ergebnissen anfangen soll oder was ich damit anfangen soll. Der Code legt eine Umgebungsvariable mit dem heutigen Datum (MM-TT-JJJJ) fest. Kann dies bei allem Respekt nicht durch Parsen der Variablen% date% geschehen? Warum nicht die Registry benutzen? Die Registrierung dient als Datenbank für alle Systemeinstellungen, warum also nicht die Quelle für diese Informationen? Der Gründer der KISS-Universität muss sich in seinem Grab drehen.

Sie meinen so? Code: für/f "skip = 2 tokens = 3 delims =" %% A in ('reg query "HKEY_USERS .DEFAULT Systemsteuerung International"/v sShortDate') echo %% A Aber Ich war an der Advanced Studies School dieser Universität, aber ich habe es nie abgekürzt. Die obige Zeile gibt dies hier in Großbritannien wieder: Code: dd/MM/yyyyLots of other goodies. sWährung, Sprache, Zeitformat usw

die Registry-bezogene Einstellung: Code: für/f "skip = 2 tokens = 3 delims =" %% A in ('reg query "HKEY_USERS .DEFAULT Systemsteuerung International"/v sShortDate') gibt %% sicher ein Echo aus Sie M/d/yyyy oder welches Format auch immer, aber nehmen wir an, Sie möchten "yyyymmdd.filename.jpg" erstellen. Sie müssen noch Datumsvariablen zuweisen, sobald das Format bekannt ist.Somit gibt es noch mehr Code-Arbeit. Am Ende kann ich dies in ein Skript schreiben: Code: Rufe getdate today_mdy & set today_ymd =! Errorlevel! Ren "filename.ext" "% today_ymd% .filename.ext" echo "filename.ext "wurde in% today_ymd% .filename.ext in% today_mdy% >> file_rename.log umbenannt. Diese Anweisung lautet: Code: for/f" skip = 1 tokens = 2-4 delims = (-) "%% e in (' Datum ^

Eine Alternative zur Verwendung sShortdate würde verwenden Ich date und sDate in dem HKCU Systemsteuerung International Registrierungsschlüssel. Das Ich date Definiert drei Werte und drei Datumsformate (0 = MM/TT/JJ, 1 = TT/MM/JJ und 2 = JJ/MM/TT). Das sDate value definiert das Trennzeichen, das als Trennzeichen in a verwendet werden kann zum Die einzige Straßensperre besteht darin, dass einige Computer den Wochentag mit dem Datumsbefehl anzeigen. Dies kann durch Verwendung eines regulären Ausdrucks in bestimmt werden findstr Befehl. Code: for/f "skip = 2 tokens = 3" %% a in ('reg query "HKEY_CURRENT_USER Systemsteuerung International"/v iDate') do (set idate = %% a) for/f "skip = 2 tokens = 3 "%% a in ('reg query" HKEY_CURRENT_USER Systemsteuerung International "/ v sDate') do (setze sdate = %% a) :: Wenn das erste Zeichen des Datums alpha ist, gehe von DOW :: echo% aus Datum: ~ 0,1% | findstr/r ""> nulif errorlevel 1 (für/f "-Token = 1-3 delims =% sdate%" %% a in ('date/t') do (wenn% idate% == 0 (set year =% % c & set month = %% a & set day = %% b) wenn% idate% == 1 (set year = %% c & set month = %% b & set day = %% a) wenn% idate% == 2 (setze Jahr = %% a & setze Monat = %% b & setze Tag = %% c))) else (für/f "Tokens = 1-4 delims =% sdate%" %% a in (' date/t ') do (wenn% idate% == 0 (setze Jahr = %% d & setze Monat = %% b & setze Tag = %% c) if% idate% == 1 (setze Jahr = %% d & setze Monat = %% c & setze Tag = %% b) if% idate% == 2 (setze Jahr = %% b & setze Monat = %% c & setze Tag = %% d))) Einmal die Datumskomponenten (Monat, Tag, Jahr) sind isoliert, es sollte ein Kinderspiel sein, sie in welcher Weise auch immer zu formatieren. Nur ein Gedanke.

VBScript hybrid.Code: @echo offecho Wscript.echo eval (WScript.Arguments (0))> evaluation.vbsfor/f "delims =" %% A in ('cscript // nologo evaluation.vbs "FormatDateTime (Now, 0) "') mache ein Echo von FormatDateTime (Now, 0) %% Afor/f" delims = "%% A in (' cscript // nologo evaluation.vbs" FormatDateTime (Now, 1) "') mache ein Echo von FormatDateTime (Now, 1 ) %% Afor/f "delims =" %% A in ('cscript // nologo evaluation.vbs "FormatDateTime (Now, 2)"') gibt FormatDateTime (Now, 2) %% Afor/f "delims =" aus %% A in ('cscript // nologo evaluation.vbs "FormatDateTime (Now, 3)"') geben FormatDateTime (Now, 3) %% Afor/f "delims =" %% A in ('cscript // nologo evaluieren.vbs "FormatDateTime (Now, 4)" ') echo FormatDateTime (Now, 4) %% Afor/f delims = "%% A in (' cscript // nologo evaluieren.vbs" Year (Date) "' ) gebe Jahr (Datum) %% Afor/f "delims =" %% A in ('cscript // nologo evaluation.vbs "Monat (Datum)"') aus, wenn %% A lss 10 (echo Monat ^ (Datum ^) 0 %% A) else (echo Monat ^ (Datum ^) %% A) für/f "delims =" %% A in ('cscript // nologo evaluation.vbs "Tag (Datum)"') do if %% A lss 10 (Echo Tag ^ (Da te ^) 0 %% A) else (echo Tag ^ (Datum ^) %% A) Code: FormatDateTime (Now, 0) 07/06/2011 08:20:15 PMFormatDateTime (Now, 1) 07 June 2011FormatDateTime (Now , 2) 07/06/2011FormatDateTime (Now, 3) 08:20:16 PMFormatDateTime (Now, 4) 20: 20Year (Date) 2011Month (Date) 06Day (Date) 07

Vielen Dank für die informative Antwort. Mir ist aufgefallen, dass Sie viel Zeit darauf verwenden, Ihr Wissen weiterzugeben und auf Fragen und Probleme zu reagieren. Ich wünschte, mehr Menschen hätten diese Einstellung.

ASUS Realtek Home Windows-Funktionen Sound Downside

Ich habe Windows 7 ultimative und Asus Realtek 6.0.1.7354 Soundon Internet ist gut, aber auf Spiele oder Anwendungen ist gestört, was bitte helfen Sie mir

Beliebte Beiträge