windows - Batch-kommando til at flytte filer til en ny mappe

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil skrive et batchjob, som når den udføres vil tage alle filerne i mappen C:TestLog og flytte dem til en ny mappe i C:Test. Denne nye mappe vil have et navn kaldet 'Backup-' og CURRENT DATE.


Så snart den er færdig, skal logmappen være tom med alle de filer, der nu er placeret i den nye mappe.


Jeg ved, at jeg skulle bruge kommandoen MOVE, men har ingen idé om, hvordan man dynamisk opretter en ny mappe og bruger datoen til at navngive den.

Bedste reference


Noget som dette kan hjælpe:


SET Today=\%Date:~10,4\%\%Date:~4,2\%\%Date:~7,2\%
mkdir C:TestBackup-\%Today\%
move C:TestLog*.* C:TestBackup-\%Today\%
SET Today=


Den vigtige del er den første linje. Det tager output af den interne DATE værdi og analyserer den i en miljøvariabel, der hedder Today, i formatet CCYYMMDD som i '20110407'.


\%Date:~10,4\% siger at uddrage en * substring af Date miljøvariabel 'Thu 04/07/2011' (indbygget i type echo \%Date\% ved en kommandoprompt) startende ved position 10 for 4 tegn (2011). Den konkluderer derefter en anden substring af Date:, der starter ved position 4 i 2 tegn (04) og indgår derefter to yderligere tegn startende ved position 7 (07).


* Udgangspunktet for substringværdi er 0-baseret.


Det kan være nødvendigt at justere disse værdier afhængigt af datoformatet i din lokalitet, men det skal give dig et udgangspunkt.

Andre referencer 1


Dette vil også fungere, hvis du vil


 xcopy  C:TestLog "c:TestBackup-\%date:~4,2\%-\%date:~7,2\%-\%date:~10,4\%\_\%time:~0,2\%\%time:~3,2\%" /s /i
 del C:TestLog