2013-08-01 19 views
11

Ho il seguente percorso di rete per copiare il file in una cartella di archivio. Copia File 1 da Folder a Archive ma vorrei aggiungere queste 2 regolazioni che non funzioneranno.Batchfile per creare il backup e rinominare con timestamp

  1. Rinomina File 1-1 a File 1 - date + time
  2. esecuzione visualizza ora una scatola cmd con il codice di copia, è possibile farlo funzionare in background o una schermata di caricamento per mostrare lo stato di avanzamento ?

Per il mio codice ho seguito this example per modificare il nome in una data.

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" 

risposta

0

Sì, per farlo funzionare in background creare un collegamento al file batch e andare nelle proprietà. Sono su una macchina Linux, ma credo che l'opzione che desideri sia nella scheda avanzata.

È inoltre possibile eseguire il vostro script batch tramite uno script vbs come questo:

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

Questo eseguirà il file batch senza finestra cmd mostrato.

15

vedere se questo è ciò che si vuole fare:

@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" 
+0

4.5 anni più tardi e avevo bisogno di questo:) .... Grazie uomo –

24

provare questo:

ren "File 1-1" "File 1 - %date:/=-% %time::=-%" 
+0

Ha bisogno di documentazione aggiuntiva, o è sufficiente utilizzare solo questo? – CustomX

+1

Oh, vinci così tanto. Questo è il modo più elegante per farlo usando le variabili di ambiente di Windows come '% DATE%' e '% TIME%'.Grazie! Eccezionale. – Slink

+0

Ma fate attenzione ad altri formati di data e tempo. – dummzeuch

6

Ho modificato la risposta di Foxidrive per copiare intere cartelle e tutti i loro contenuti. questo script creerà una cartella e farà il backup del contenuto di un'altra cartella, comprese eventuali sottocartelle sottostanti.

Se si inserisce un'attività programmata ogni ora, è necessario fare attenzione poiché è possibile caricare rapidamente l'unità con copie della cartella originale. Prima di bitbucket ecc ho usato come script simile per salvare il mio codice offline.

@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 
1

Rinomina tutti i file .pdf basate sulle attuali data di sistema. Ad esempio, un file denominato Gross Profit.pdf viene rinominato in Gross Profit 2014-07-31.pdf. Se lo esegui domani, lo cambierà in Gross Profit 2014-08-01.pdf.

È possibile sostituire lo ? con il nome del report Gross Profit, ma verrà rinominato solo il report. Lo ? rinomina tutto nella cartella Conduit. Il motivo per cui ci sono così tanti ?, è che alcuni .pdf hanno nomi lunghi. Se hai appena inserito 12 ? s, qualsiasi nome più lungo di 12 caratteri verrà ritagliato al 13 ° carattere. Provalo con 1 ?, quindi prova con molti ? s. La lunghezza ? deve essere un po 'più lunga o lunga quanto il nome del rapporto più lungo.

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