Wie unterscheidet man Ordner von Dateien in einem Batch-Skript? (Oder wie man sie wahllos kopieren und umbenennen kann?)

1558
fluxtendu

Ich möchte eine Stapeldatei erstellen, um Dateien oder Ordner in einem angegebenen Verzeichnis zu kopieren und Datum und Uhrzeit an ihre Namen anzufügen.
Hier ist mein tatsächlicher Code:

@echo off Set _bpath=T:\Backup\ if [%1]==[] goto :eof :loop Set _file=%~n1% Set _ext=%~x1% For /f "tokens=1-3 delims=1234567890 " %%a in ("%time%") Do Set "delims=%%a%%b%%c" For /f "tokens=1-4 delims=%delims%" %%G in ("%time%") Do ( Set _hh=%%G Set _min=%%H Set _ss=%%I Set _ms=%%J ) copy %1 "%_bpath%%_file%(%date:/=-% %_hh%h%_min%m%_ss%s)%_ext%" shift if not [%1]==[] goto loop 

Dies funktioniert nur für Dateien und ich könnte es leicht für Ordner anpassen, xcopy /E %1 "%_bpath%%_file%(%date:/=-% %_hh%h%_min%m%_ss%s)aber ich möchte den Umgang mit zwei Batch-Dateien vermeiden.

Wie kann man sie also wahllos kopieren / umbenennen (ich habe es mit Erfolg versucht, xcopy und robocopy ohne Erfolg) oder wie unterscheidet man sie, um zwei IF-Zweige zu erstellen? (Die Verwendung von% ~ x1% ist zu unzuverlässig ...)

1

1 Antwort auf die Frage

1
asdfg

Dies könnte für Sie nützlich sein, siehe diese Frage