Top-Themen

Aktuelle Themen (A bis Z)

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 alle dateien eines Ordners jeweils in einen Ordner der den Namen der Datei erhält verschieben.

Mitglied: paulkuhn

paulkuhn (Level 1) - Jetzt verbinden

26.01.2009, aktualisiert 15:33 Uhr, 24185 Aufrufe, 6 Kommentare

Hallo...

habe folgendes Batch-Anliegen:

Es sollen in einer Schleife alle Dateien (z.B. 123.pdf, 456.pdf, 456.log) eines Ordners z.B. (x:\in\) jeweils verschoben werden in einen Ordner mit Namen der Datei z.B. x:\123\123.pdf, x:\456\456.pdf und x:\456\456.log.
Dateien mit gleichem Dateinamen aber anderer Endung soll im gleichen Zielordner landen. Meist ist dieser Zielordner korrekt bezeichnet schon vorhanden, in wenigen Fällen nicht. Hier sollte der Ordner also vorher angelegt werden.
Der Dateiname ist in der Länge nicht fix. Die Batch-Datei wird nicht vom gleichen Ordner aufgerufen...

Für die meisten hier sicher trivial. Leider nicht für mich. Bin für alle Tipps dankbar...
Mitglied: ANGER77
26.01.2009 um 16:51 Uhr
ICh weiß leider nicht ob dir das weiterhelfen kann, aber Robocopy ist für solche Angelegenheiten immer sehr gut.

http://www.wintotal.de/Artikel/robocopy/robocopy.php

Gruß Rico
Bitte warten ..
Mitglied: paulkuhn
26.01.2009 um 17:35 Uhr
Hmm...
zunächst Danke für den Hinweis.
Ich hätte das Problem aber gern nur mit Batchscript gelöst, ohne Aufruf zusätzlicher Tools.

Allerdings strauchele ich schon in der for-schleife bei dem korrekten Auslesen des Parameters (Dateiname ohne Endung)
Bitte warten ..
Mitglied: Biber
26.01.2009 um 18:53 Uhr
Moin paulkuhn,

willkommen im Forum.
Im Prinzip brauchst Du nur ein bis zwei Zeilen vom CMD-Prompt für Dein Vorhaben.
Eine zeile, um das (eventuell) noch nicht vorhandene verzeichnis anzulegen und eine Anweisung, um die Dateien in dieses Verzeichnis zu MOVEn.

Demo am CMD-Prompt [einzugebene Zeilen beginnen mit ">"]
01.
> for %i in (d:\temp1\*.pdf) do @echo if not exist "%~dpi%~ni" md "%~dpi%~ni" 
02.
> for %i in (d:\temp1\*.pdf) do @echo move "%i" "%~dpi%~ni\*.*"
Bei meiner vorhandenen Datei d:\temp1\sy6help.pdf würde als ECHO herauskommen:
01.
if not exist "d:\temp1\sy6help" md "d:\temp1\sy6help" 
02.
move "d:\temp1\sy6help.pdf" "d:\temp1\sy6help\*.*"
In einem Batch auf ALLE Dateien angewandt (nicht nur auf *.pdf) sähe das so aus:
01.
::------snipp MoveIntoSubdirs.cmd 
02.
@FOR %%i IN (d:\EinStartVerzeichnis\*.*) do @( 
03.
          IF NOT EXIST "%%~dpi%%~ni" MD "%%~dpi%%~ni" 
04.
           MOVE "%%i" "%%~dpi%%~ni\" 
05.
)
[Edit] ungetestete Skizze - aber erkennbar (s.u.) [/Edit]

Dieses ganze kryptische %%~pdnxi-Geraffel ist nur in den ersten zwei Leseversuchen unverständlich,
mit der Hilfe zu FOR/? im unteren Drittel hast Du den Code schnell geknackt.

Grüße
Biber
Bitte warten ..
Mitglied: paulkuhn
26.01.2009 um 20:01 Uhr
Sauber...

Funktioniert nach einigen kleinen Änderungen sofort.
Es musste noch ein Leerzeichen zwischen IN und der Klammer und der Move-Befehl muss ohne *.* am Ende abgesetzt werden.

Dank dir sehr...

Aber:
was muss geändert werden, damit die Erstellung der Ordner und das Verschieben nicht in Unterordnern des Hauptordners stattfindet, sondern eine Ebene höher.
Also:
Hauptordner ist c:\test\out, darin befinden sich die Dateien, z.B. 157.pdf und 158.pdf
Die neuen Ordner sollen in c:\test\ erstellt werden und entsprechend die Datein von c:\test\out in die neuen Ordner auf c:\test\157\ und c:\test\158\ verschoben werden.

Gruß Paule
Bitte warten ..
Mitglied: Biber
26.01.2009 um 21:58 Uhr
Moin paulkuhn,

ausgerechnet bei dem letzten Kommentar habe ich NICHT druntergeschrieben "[ungetestete Skizze]"...*g

Ich korrigier es gleich oben.

Zu Deiner Frage: Wenn Du ein "festes" neues Root-Zeilverzeichnis hast:
--> ganz klar, dann schreib es fest rein in die (ohnehin nur eine) Zeile.
Dann wird im ersten Wurf daraus:
01.
::------snipp MoveIntoSubdirsV2.cmd 
02.
@FOR %%i IN(d:\EinStartVerzeichnis\*.*) do @( 
03.
          IF NOT EXIST "C:\test%%~ni" MD "c:\test%%~dpi%%~ni" 
04.
           MOVE "%%i" "c:\test%%~ni\" 
05.
)
...und wenn es bisschen wartbarer werden soll:
01.
::------snipp MoveIntoSubdirsV3.cmd 
02.
@echo off & setlocal 
03.
Set "QuellRoot=d:\EinStartVerzeichnis" 
04.
Set "ZielRoot=D:\test" 
05.
@FOR %%i IN ("%QuellRoot%\*.*") do @( 
06.
          IF NOT EXIST "%ZielRoot%\%%~ni" MD "%zielRoot%\%%~dpi%%~ni" 
07.
           MOVE "%%i" "%ZielRoot%\%%~ni\" 
08.
)
[ungetestete Skizze]

Grüße
Biber
Bitte warten ..
Mitglied: paulkuhn
27.01.2009 um 10:06 Uhr
Nochmal einen herzlichen Dank!!!

Abgesehen von den überaus kompetenten Antworten ist besonders Prima,
daß sogar Anleitungen zum besseren Verständniss des Codes gegeben werden (in den einleitenden Blöcken, mit Hinweis auf die "Debug-Möglichkeit" mit @echo).

Das hat mir sehr geholfen, so das ich tatsächlich spät am Abend noch selbstständig auf eine ähnliche Lösung gekommen bin.
(Allerdings jeweils festverdrahtet, ohne Nutzung von Variablen für die Verzeichnisse) Dein neuer Code ist natürlich viel besser. Evtl. werde ich das noch so erweitern, das diese Source und Target-Variablen aus ner externen Datei eingelesen werden(Diese aus DB generiert) So das alles ohne weiteres editieren flutscht. Dazu gibt es hier ja reichlich Anleitungen und Hilfestellung. Toll, wie ein paar wenige Zeilen ein Problem lösen können....

Top!!!

Gruß Paule
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordner und Datei Name gleich (BATCH)
gelöst Frage von clragonBatch & Shell12 Kommentare

Hey Leute. Simples Problem; Bat to Exe Converter ist nicht sehr sauber. Trotzdem nützlich. Es räumt die Dateien und ...

Batch & Shell

Batch : alle Dateien eines Ordners bearbeiten

gelöst Frage von deguonkelBatch & Shell1 Kommentar

Hallo, ich habe folgendes Problem, ich habe ein fertiges Batch-Programm, bei dem man einen Dateipfad angibt, und diese Datei ...

Batch & Shell

Dateien anhand des Namens in neue Ordner verschieben

gelöst Frage von CookiemonsterBatch & Shell17 Kommentare

Hallo Leute, kann mir jemand von Euch mit diesem Problem helfen: Ich habe einen Ordner mit Dateien der folgenden ...

Batch & Shell

Batch Datei zum verschieben von Dateien aus Unterordnern ?

gelöst Frage von Ghostrider1911Batch & Shell10 Kommentare

Hallo, ich bräuchte eine Batch Datei die Dateien aus Unterordnern verschiebt. Also ich habe folgende Verzeichniss Struktur: Z:\Dateien\Ordner1\M1\ Z:\Dateien\Ordnärx\M1\ ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 21 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 21 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

LAN, WAN, Wireless
Gigabit-Lan mit zwei 4-adrigen Kabeln?
Frage von ArvedirmerLAN, WAN, Wireless11 Kommentare

Ich habe folgendes Problem: Ich betreue eine kleine Firma die sich im 1.Stock eines Gebäudes befindet. Es existiert ein ...

Router & Routing
Routing Probleme mit Firewall
gelöst Frage von mb1811Router & Routing9 Kommentare

Hallo Zusammen! Ich habe folgende Problematik, wo ich ein wenig Input benötige: Gem. angehängter Skizze habe ich folgenden Stand: ...