webentwicklung-frage-antwort-db.com.de

Batchdatei zum Erstellen einer Sicherung und Umbenennen mit Zeitstempel

Ich habe den folgenden Netzwerkpfad, um die Datei in einen Archivordner zu kopieren. Es kopiert File 1 von Folder nach Archive, aber ich möchte diese 2 Anpassungen hinzufügen, die nicht funktionieren.

  1. Umbenennen von File 1-1 in File 1 - date + time
  2. Wird es jetzt ausgeführt, wird ein cmd-Feld mit dem Kopiercode angezeigt. Ist es möglich, es im Hintergrund auszuführen, oder einen Ladebildschirm haben, um den Fortschritt von Anzuzeigen?

Für meinen Code folgte ich diesem Beispiel , um den Namen in ein Datum zu ändern.

copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1-1.xlsx"
/f "tokens=1-5 delim s=/ " %%d in ("%date%") do rename "F:\Folder example 2.xlsx" "F:\Folder\File example %%e-%%f-%%g.xlsx"
13
CustomX

versuche dies:

ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
25
Endoro

Prüfen Sie, ob Sie dies tun möchten:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1 - %stamp%.xlsx"
18
foxidrive

Ich habe die Antwort von Foxidrive geändert, um ganze Ordner und deren gesamten Inhalt zu kopieren. Dieses Skript erstellt einen Ordner und sichert den Inhalt eines anderen Ordners, einschließlich der darunter liegenden Unterordner.

Wenn Sie beispielsweise eine stündlich geplante Aufgabe angeben, müssen Sie vorsichtig sein, da Sie Ihr Laufwerk schnell mit Kopien des ursprünglichen Ordners füllen können. Vor Bitbucket usw. habe ich als ähnliches Skript meinen Code offline gespeichert.

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=YourPrefixHere_%YYYY%%MM%%DD%@%HH%%Min%
rem you could for example want to create a folder in Gdrive and save backup there
cd C:\YourGoogleDriveFolder
mkdir %stamp%
cd %stamp%

 xcopy C:\FolderWithDataToBackup\*.* /s 
7
KuriaNdungu

Benennt alle .pdf-Dateien basierend auf dem aktuellen Systemdatum um. Beispielsweise wird eine Datei mit dem Namen Gross Profit.pdf in Gross Profit 2014-07-31.pdf umbenannt. Wenn Sie es morgen ausführen, wird es in Gross Profit 2014-08-01.pdf umbenannt. 

Sie können ? durch den Berichtsnamen Gross Profit ersetzen, es wird jedoch nur der eine Bericht umbenannt. Der ? benennt alles im Conduit-Ordner um. Es gibt so viele ?, dass einige .pdfs lange Namen haben. Wenn Sie nur 12 ?s eingeben, wird jeder Name, der länger als 12 Zeichen ist, am 13. Zeichen abgeschnitten. Versuchen Sie es mit 1 ? und dann mit vielen ?s. Die ?-Länge sollte etwas länger oder so lang sein wie der längste Berichtsname.

@ECHO OFF
SET NETWORKSOURCE=\\flcorpfile\shared\"SHORE Reports"\2014\Conduit
REN %NETWORKSOURCE%\*.pdf "????????????????????????????????????????????????? %date:~-4,4%-%date:~-10,2%-%date:~7,2%.pdf"
1
user3820643

Ja, damit es im Hintergrund ausgeführt wird, erstellen Sie eine Verknüpfung zur Batchdatei und gehen Sie zu den Eigenschaften. Ich bin auf einem Linux-Computer-ATM, aber ich glaube, die Option, die Sie wünschen, ist in der Registerkarte Erweitert.

Sie können Ihr Batch-Skript auch wie folgt über ein VBS-Skript ausführen:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Dadurch wird Ihre Batchdatei ausgeführt, ohne dass ein cmd-Fenster angezeigt wird.

0
krowe