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

Per Batch Dateien in Ordner mit bestimmter Zahl im Ordnernamen verschieben.

Frage Entwicklung Batch & Shell

Mitglied: fiedelio

fiedelio (Level 1) - Jetzt verbinden

23.04.2014 um 13:26 Uhr, 1964 Aufrufe, 4 Kommentare, 1 Danke

Hallo zusammen, ich bin neu hier im Forum und möchte gerne bei folgendem um Hilfe bitten:

Ich versuche per Batch Dateien von Ordner A nach Ordner B zu verschieben, an sich nichts wildes.

Der Punkt an dem ich scheitere ist, dass die Ordner bis auf die ersten drei Ziffern unterschiedliche Namen haben.
Man kann sich das so vorstellen:

Quelle:
pfad\temp\100 AABB ABBC CDE
pfad\temp\101 ADABB ADBBC CDE
pfad\temp\109 DAABB ABBC CDE

Ziel:
pfad\ablage\100 ABB ABD
pfad\ablage\101 ADAD BBC CDE
pfad\ablage\109 DB ABBC CDE

Nun soll mein Batch die Verzeichnisse durchlaufen und, falls ein Ordner im Zielverzeichnis die gleiche Zahl zu Beginn des Verzeichnisnamen hat (Im Beispiel "100"), die im Quellverzeichnis enthaltenen Dateien dorthin kopieren.

Wie schaffe ich es, die folgende Zeile (die so far die Ordner ausliest, allerdings den Zielordner nicht "findet") so zu erweitern, dass lediglich die ersten drei Ziffern geprüft werden?
for /f %%a in ('dir temp\ /b /AD ') do (if exist "ablage\%%a" echo "temp\%%a" "ablage\%%a\")
Das "echo" wird produktiv durch den kopier-Befehl ersetzt werden. ;)

Vielen Dank für eure Tipps!
Mitglied: colinardo
LÖSUNG 23.04.2014, aktualisiert um 15:50 Uhr
Hallo fidelio, Willkommen im Forum.
könnte so aussehen:
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "quelle=c:\quelle" 
03.
set "ziel=c:\ziel" 
04.
for /f "delims=" %%a in ('dir /B /AD "%quelle%"') DO @( 
05.
  set "folder=%%a" 
06.
  set num=!folder:~0,3! 
07.
  for /f "delims=" %%b in ('dir /B /AD "%ziel%\!num!*" 2^>nul') DO @( 
08.
    echo copy "%quelle%\!folder!\*.*" "%ziel%\%%b" 
09.
10.
)
Der Copy-Befehl ist noch nicht scharf geschaltet. Wenn es wie gewünscht funktioniert das echo vor dem Copy-Befehl entfernen

Grüße Uwe
Bitte warten ..
Mitglied: fiedelio
23.04.2014 um 14:41 Uhr
Hallo colinardo,

vielen Dank für die schnelle Antwort.
Ich hatte nicht mit einer "fertigen" Lösung gerechnet.
Klappt wunderbar!
Bitte warten ..
Mitglied: fiedelio
23.04.2014 um 15:48 Uhr
Zitat von colinardo:
for /f "delims=" %%b in ('dir /B /AD "%ziel%\!num!*" 2^>null') DO @(

hab noch "null" durch "nul" ersetzt...
Bitte warten ..
Mitglied: colinardo
23.04.2014, aktualisiert um 15:51 Uhr
Zitat von fiedelio:
hab noch "null" durch "nul" ersetzt...
ach sorry...habs korrigiert
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
Batch - Warten bis bestimmter Task läuft (5)

Frage von Winfried-HH zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch einen Ordner mit der höchsten versionsnr aussuchen (2)

Frage von zaibon zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...