Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchdatei zum kopieren bestimmter Dateien in ein bestimmtes Unterverzeichnis

Frage Entwicklung Batch & Shell

Mitglied: imebro

imebro (Level 2) - Jetzt verbinden

20.01.2014, aktualisiert 13:41 Uhr, 2247 Aufrufe, 8 Kommentare, 2 Danke

Guten Tag,

ich habe ein Hauptverzeichnis (HV), in dem 250 Unterverzeichnisse mit unterschiedlichen Namen liegen.
Manche dieser 250 Unterverzeichnisse enthalten ein weiteres Unterverzeichnis (AB3).

Nun würde ich gerne eine Abfrage erstellen, wie folgt:

Wenn in den Unterverzeichnissen von "HV" jeweils ein Verzeichnis "AB3" existiert, sollen alle Dateien mit der Dateiendung ".exe" in das Verzeichnis "AB3" verschoben werden.

Ich denke, verschieben wäre die richtige Funktion, da diese EXE-Dateien später NUR noch im Verzeichnis "AB3" existieren sollen und nicht mehr im jeweiligen Verzeichnis darüber.

Beispiel:

HV\Banane\AB3
HV\Apfel\
HV\Birne\
HV\Erdbeere\AB3
HV\Himbeere\AB3

In diesem Beispiel müßten also nur Dateien im ersten und den beiden letzten Verzeichnissen verschoben werden, da dort jeweils ein Verzeichnis "AB3" existiert.

Danke und schöne Grüße,
imebro
Mitglied: colinardo
LÖSUNG 20.01.2014, aktualisiert um 13:41 Uhr
Hallo imebro,
könntest du so mit Batch machen, wenn die EXE-Dateien jeweils in den Unterverzeichnen des HV liegen: HV\Banane\*.exe:
01.
@echo off 
02.
for /D %%a in ("C:\HV\*") do @( 
03.
  if exist "%%a\AB3" (move "%%a\*.exe" "%%a\AB3\") 
04.
)
und hier noch das selbe mit Powershell falls das benötigt wird:
01.
$hv = "C:\HV" 
02.
gci $hv | ?{$_.PSIsContainer -and test-path "$($_.FullName)\AB3"} | %{move-item "$($_.FullName)\*.exe" "$($_.FullName)\AB3" }
Grüße Uwe
Bitte warten ..
Mitglied: imebro
20.01.2014, aktualisiert um 13:22 Uhr
Hallo Uwe,

danke Dir für die schnelle Antwort.
Bei einem Test mit 3 Test-Verzeichnissen, hat das super funktioniert mit der Batch-Variante.

Was muss ich denn eingeben, um am Ende auch noch eine LOG-Datei zu erhalten, um prüfen zu können, ob alles OK ist?

Würde es dazu reichen, am Ende - also hinter die letzte Klammer - einfach folgendes einzutragen:

">> C:\AB3Log.txt"

Danke und Gruss,
imebro
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.01.2014, aktualisiert um 13:45 Uhr
wenn nur Fehler geloggt werden sollen machst du es so in der Move-Zeile
01.
if exist "%%a\AB3" (move "%%a\*.exe" "%%a\AB3\" 2>>"C:\AB3Log.txt")
Mit etwas mehr Info zum Verzeichnis wo der Fehler aufgetreten ist (Die Fehlermeldungen von Move sind nämlich sehr spärlich):
01.
@echo off 
02.
for /D %%a in ("C:\HV\*") do @( 
03.
  if exist "%%a\AB3" ( 
04.
   echo "Verarbeite Verzeichnis '%%a' >>"C:\AB3Log.txt" 
05.
   move "%%a\*.exe" "%%a\AB3\"  2>>"C:\AB3Log.txt" 
06.
07.
)
Grüße Uwe
Bitte warten ..
Mitglied: imebro
20.01.2014 um 13:41 Uhr
Super... vielen Dank.

Hat perfekt funktioniert und ich bin überrascht über die Geschwindigkeit.
Offenbar geht das verschieben per "move" extrem viel schneller, als wenn ich die Dateien kopiert und später im Überverzeichnis gelöscht hätte.

Danke und Gruss,
imebro
Bitte warten ..
Mitglied: colinardo
20.01.2014, aktualisiert um 13:44 Uhr
Zitat von imebro:
Hat perfekt funktioniert und ich bin überrascht über die Geschwindigkeit.
Offenbar geht das verschieben per "move" extrem viel schneller, als wenn ich die Dateien kopiert und später im Überverzeichnis gelöscht hätte.
hierbei wird ja nur der Eintrag in der MFT der Festplatte geändert und keine Bits verschoben weil die Daten auf der selben Partition beiben deshalb so schnell.
Bitte warten ..
Mitglied: imebro
20.01.2014 um 14:09 Uhr
OK - verstehe

Eine Verständnisfrage noch.
Ich wollte eben noch (zunächst testweise) in allen Verzeichnissen, in denen ".exe"-Dateien existieren, ein Unterverzeichnis mit dem Namen "AB3" anlegen.

Dazu habe ich folgendes getestet... leider erfolglos:

for /D %%a in ("C:\HV\HV1\*") do @(

if exist "%%a\.exe" (mkdir "C:\HV\HV1" "%%a\AB3\")

)

Danke und Gruss,
imebro
Bitte warten ..
Mitglied: colinardo
20.01.2014, aktualisiert um 14:14 Uhr
01.
@echo off 
02.
for /D %%a in ("C:\HV\HV1\*") do @( 
03.
  if exist "%%a\*.exe" md "%%a\AB3" 
04.
)
Grüße Uwe
Bitte warten ..
Mitglied: imebro
20.01.2014 um 14:19 Uhr
Danke nochmals...

Da hab ich es mir wohl schwieriger gemacht, als nötig

Danke nochmals und schöne Grüße,
imebro
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...