0

Angenommen, ich habe eine Datei mit dem Namen api-build009.jar und es existiert in mehreren Verzeichnissen.Mass Kopieren und Rename Dateien in die entsprechenden Verzeichnisse (CLI/PowerShell)

Ich möchte die Datei in das gleiche Verzeichnis wie die Originaldatei sichern (und damit umbenennen). Ich möchte diese Operation für alle oben genannten Verzeichnisse durchführen (8, in diesem Beispiel), die Originaldatei kopieren und sie dann in api-build009.jar.bak umbenennen.

D:\InstallDir\subdir1\api-build009.jar.bak 
D:\InstallDir\subdir2\subdir21\api-build009.jar.bak 
D:\InstallDir\subdir3\api-build009.jar.bak 
D:\InstallDir\subdir4\subdir41\api-build009.jar.bak 
D:\InstallDir\subdir5\api-build009.jar.bak 
D:\InstallDir\subdir6\subdir61\subdir62\api-build009.jar.bak 
D:\InstallDir\subdir7\api-build009.jar.bak 
D:\InstallDir\subdir8\api-build009.jar.bak 

Wie kann ich diesen Prozess mit Windows CLI oder Powershell durchführen?

Vielen Dank im Voraus.

Antwort

1

Sobald Sie schreiben a file - klingt wie die gleiche Datei, und dann schreiben Sie Backup the file im selben Ordner. Sind das verschiedene Versionen oder Kopien derselben Datei?
Diese Skripte werden die Dateien in denselben Namen und den Ort mit .bak Erweiterung

Batch

@Echo off 
PushD "D:\InstallDir" 
For /f "delims=" %%A in (
    'Dir /B/S api-build009.jar' 
) Do Echo Copy "%%~fA" "%%~fA.bak" 
Popd 

Powershell

Get-ChildItem -Path D:\InstallDir -File -Filter api-build009.jar| 
    ForEach { Copy-Item $_.FullName -Destination "$($_.Fullname).bak" -whatif} 

kopieren Wenn die Ausgabe der echo im Batch ok entfernen sieht/-whatif in Das Skript

+0

Das ist großartig. Vielen Dank. Ich arbeitete an etwas ähnlichem, aber das sieht viel besser aus. Kannst du mein Gedächtnis auffrischen - was ist der Zweck von '~' hier? Was macht '%% ~ fA' genau? – user3621633

+1

@ user3621633 Dies ist der Modifikator für var, siehe 'for /?'. '~ f' erweitert %% A zum vollständigen Namen, genau wie' ~ dpnx' alias Name und Erweiterung des Laufwerks. – LotPings

+0

Ausgezeichnet. Ich schätze die Ausbildung. Nochmals vielen Dank für Ihre Hilfe. Dies sollte der Trick sein, sei es Batch oder PowerShell. :) – user3621633

Verwandte Themen