Ordner mit Fledermaus-Datei erstellen


15

Ich muss eine Fledermaus-Datei schreiben, die einen neuen Ordner mit aktuellem Datum und Uhrzeit für den Ordnernamen erstellt. Ich kam mit dem Follow-up:

for /f "tokens=1-3 delims=:," %%i in ("%TIME%") do md %DATE%-%%i.%%j.%%k 

Ist dieser Code keine Fehler hat? Gibt es einen einfacheren/natürlicheren Weg?

  0

Übrigens schafft dies zwei Verzeichnisse hier. Zitate (md "% DATE% - %% i. %% j. %% k") wären besser. 22 feb. 092009-02-22 11:43:51

23

Sie einen Teil und der eingebauten in% DATE% und% TIME% Variablen, dies zu tun verwenden können:

@echo OFF 

:: Use date /t and time /t from the command line to get the format of your date and 
:: time; change the substring below as needed. 

:: This will create a timestamp like yyyy-mm-dd-hh-mm-ss. 
set TIMESTAMP=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%-%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% 

@echo TIMESTAMP=%TIMESTAMP% 

:: Create a new directory 
md "%1\%TIMESTAMP%" 
  0

das ist genau was ich suchte, dieser Ansatz scheint mir natürlicher 23 feb. 092009-02-23 09:55:18

+1

Sehr hilfreich! Es sollte jedoch beachtet werden, dass die Verwendung des obigen Codes einen einzelnen Parameter voraussetzt: den Zielort des neuen Ordners. Wenn Sie so arbeiten, wie sie ist, haben Sie einen zeitgestempelten Ordner im Stammverzeichnis des Laufwerks, von dem Sie gestartet haben. 28 mär. 122012-03-28 18:51:11


5

Ich benutze diese Fledermaus

for /F "tokens=1-4 delims=. " %%i in ('date /t') do (
set Day=%%i 
set Month=%%j 
set Year=%%k 
) 

for /F "tokens=1-4 delims=: " %%i in ('time /t') do (
set Hour=%%i 
set Minute=%%j 
set Second=%%k 
) 


md %1\%Year%-%Month%-%Day% 

Hoffe, es hilft.

  0

Beachten Sie, dass time/t nicht funktioniert, wenn die Befehlserweiterungen deaktiviert sind, aber ich denke, das stört Sie nicht wirklich. (Siehe http://www.pc1news.com/disabling-command-processor-extensions-824.html als Referenz) 22 feb. 092009-02-22 11:36:19

  0

Ich weiß nicht viel über Bat-Scripting, ich wollte nur Fledermaus, die einen Ordner mit dem aktuellen Datum erstellt, aber Danke für die Information. 22 feb. 092009-02-22 12:10:31

  0

Die zweite for-Schleife zeigt nicht die Sekunden auf meinem Computer an, weil die Zeit/t-Ausgabe nur 8:12 für mich ist (keine Sekunden). 16 jan. 122012-01-16 07:11:56


0

Haben Sie es versucht? Ihre Befehlszeile wirft einen Fehler auf meiner Seite.

  0

Wenn Sie es direkt von der Befehlszeile anstelle einer Batch-Datei ausführen möchten, ersetzen Sie %% i durch% i, dann wird es funktionieren. 22 feb. 092009-02-22 11:42:46

  0

Ich habe es in einer Fledermaus-Datei versucht. Es scheint gut zu funktionieren. Wenn Sie es über die Befehlszeile ausführen, sollten Sie %% durch% ersetzen. für/f "Token = 1-3 delims = :,"% i in ("% ZEIT%") md% DATE% -% i.% J.% K 22 feb. 092009-02-22 11:44:11

  0

richtig. Danke Schnaader und Yarik. 22 feb. 092009-02-22 11:59:06


1

ich nicht viele des oben bekommen könnte zu arbeiten, den Original-Plakate Befehl erfolgreich obwohl.

Hier ist meine Version:

für/f "tokens = 1-3 delims =: /".. %% i in ("% DATE%") tun gesetzt DATESTAMP = %% i %% j% % k
@echo Verzeichnis wird mit diesem Namen gemacht werden:..
@echo Backup% DATESTAMP%
md Backup% DATESTAMP%
@echo Directory vorgenommen, nun fortfahren mit Datei kopieren ...
@echo Bitte stellen Sie sicher, dass der PC keine E-Mails oder Dokumente geöffnet hat. .
Pause
cd backup% DATESTAMP%
md "Gemeinsame Dokumente"
xcopy "c: \ Dokumente und Einstellungen \ All Users \ Dokumente \ Dokumente" "Gemeinsame Dokumente"/E/C/E/H/Q
@echo in Dokumente abgeschlossen.

etc :)


0

haben Sie nicht nur versucht, einen neuen neuen Ordner Maker mit Datum und Uhrzeit als new_folder_maker.bat mit diesem Code

:start 
@echo off 
md new_folder_%date%_%time% 
exit 
+2

_Haben Sie nicht nur versucht_ Ihren eigenen Code? Offensichtlich kann es nicht funktionieren, da '% time%' Doppelpunkte enthält und in einigen kleineren Ländern das Datum Schrägstriche enthält. Beide sind in Pfadnamen nicht gültig 21 mär. 122012-03-21 12:42:36

  0

In der Tat hängt es von den Zeit- und Datumseinstellungen 26 okt. 122012-10-26 12:02:23


0

Hier ist meine Lösung (modified off lopkiju der) gespeichert zu machen . Es erstellt einen Ordner mit einem Datumsstempel. Wenn ein Ordner mit diesem Namen bereits vorhanden ist, fügen Sie ihm eine ganze Zahl hinzu, um ihn eindeutig zu machen. Fügen Sie dies in eine .bat-Datei ein und übergeben Sie den Pfad zum übergeordneten Ordner.
Getestet in Windows 7 Home Premium x64.

REM Create a folder using the current date. If such a folder already exists, append a number to make it unique. 
@ECHO OFF 
for /F "tokens=2-5 delims=/ " %%i in ('date /t') do (
set Day=%%j 
set Month=%%i 
set Year=%%k 
) 

set Path=%~1\%Year%-%Month%-%Day% 
set /a inx=2 

:LOOP 
IF NOT EXIST "%Path%" GOTO CREATE 
set Path=%~1\%Year%-%Month%-%Day% (%inx%) 
set /a inx+=1 
if %inx% gtr 9 goto :END REM Eh, giving up. 
goto LOOP 
:END 

:CREATE 
md "%Path%" 
:END 
  0

können Sie eine Ressource bereitstellen erklärt das bitte Schritt für Schritt? Ich habe die Hilfe in der Eingabeaufforderung verwendet und es ist ein wenig schwer zu folgen 05 nov. 132013-11-05 13:42:36

  0

der Zeitstempel enthält Sekunden. also ist es schon bijektiv 27 jan. 142014-01-27 20:59:39


0

Sie können die Vorteile von GNU sh-utils mit date.exe ‚s Formatbezeich nehmen:

for /f "delims=" %%a in ('date.exe +%%Y-%%m-%%d.%%H-%%M') do @set dd=%%a 
md %dd% 

Diese Lösung ist besonders wichtig für diejenigen mit lokalisierten Versionen von Windows.

for Die Schleife wird einmal ausgeführt, sie wird jedoch benötigt, da es keine einfachere Möglichkeit gibt, eine Variable mit dem Wert aus der Ausgabe des Befehls zu belegen.

Verwenden Sie date --help für die vollständige Liste der Formatbezeichner.


0

das funktioniert ziemlich gut für mich

dkdir foldername 

cd foldername 

dkdir %date% %time% 

cls 

1

Der Grund, warum% eine einfache% Zeit nicht funktioniert, weil seine von getrennt ist: die im Batch-Scripting ist nicht erlaubt. Aber dieses sollte gut funktionieren:

Es funktioniert sehr gut für mich.

Rem Get Day,Mth & Year from %Date% 
set Day=%Date:~0,2% 
set Mth=%Date:~3,2% 
set Yr=%Date:~6,4% 
REM Get Hour and Min from %Time% 
set Hour=%Time:~0,2% 
if "%hour:~0,1%" == " " set hour=0%hour:~1,1% 
set Min=%Time:~3,2% 

mkdir %date%-%hour%.%min%