Sto cercando di copiare i file in una cartella di sola lettura senza sovrascrivere


0

Ho letto le domande e risposte da

Copia da una posizione all'altra utilizzando lo script batch in base alla data modificata e anche i file appena aggiunti nell'origine

e

File batch Copia e sposta senza sovrascrivere

Ma ho problemi a trovare quello che sto cercando.

Vorrei scrivere un semplice file di script (.BAT) per copiare solo (non spostare) file da un'unità C: \ locale in una cartella di rete protetta. Poiché i file sull'unità locale vengono occasionalmente modificati, mi piacerebbe conservare sia le versioni vecchie che nuove dei file originali. Esiste un modo per copiare tutte le versioni precedenti di un file e automatizzare l'aggiunta di un identificatore (ad esempio, _01, _02 e così via) nella cartella di destinazione ai file appena modificati trovati nella cartella di origine? Stiamo anche organizzando un evento Windows per eseguire questo script ogni 4 ore, quindi acquisiamo tutto ciò di cui abbiamo bisogno in caso di crash del PC.

Qualsiasi aiuto è molto apprezzato in quanto sono un principiante.


Non puoi scrivere nella cartella di sola lettura , se è quello che stai cercando di fare. Altrove, è certamente possibile copiare i file e creare una nuova copia rinominata se esiste già un nome file.
Abhinav Sood,

Risposte:


0

Che dire dell'utilizzo di un timestamp come identificatore? Sulla mia finestra tedesca

  echo %date

restituisce il 25.11.2016.

utilizzando

  set ARCHIVNAME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%

in un file batch farà apparire ARCHIVENAME in questo modo:

 2016-11-2016

Il primo numero rappresenta l'indice da prendere, il secondo la lunghezza della sottostringa, ad esempio 6,4 significa "inizia dal carattere sei (dopo" 25.11 ") e prende quattro caratteri (2016).

Ora puoi usare la variabile ARCHIVENAME nel tuo comando di copia:

copy thefile.org otherFolder\%ARCHIVENAME%_thefile.org

Questo porterà al nome del file "25-11-2016_thefile.org". Nel caso in cui i giorni non siano abbastanza unici, puoi fare la stessa cosa con% TIME%.

E solo per considerazione un approccio leggermente diverso:

Creare un repository di sovversione locale sulla condivisione di rete utilizzando TortoiseSVN e quindi utilizzare la riga di comando svn per verificare le nuove versioni dei file modificati.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.