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

Mit Batch den letzten Ordner eines Pfades aus einer Listendatei ermitteln

Frage Entwicklung Batch & Shell

Mitglied: Campari-O

Campari-O (Level 1) - Jetzt verbinden

05.03.2009, aktualisiert 18.10.2012, 8635 Aufrufe, 9 Kommentare

ermitteln des Zielordners für -copy-Befehle aus einer Ordnerliste mit unterschiedlichen Verzeichnistiefen

Hallo Forengemeinde!
Nun komme ich also doch noch in die Verlegenheit eine wahrscheinlich einfache Frage hier zu stellen.
Dieses Forum hat mir schon bei seeehr vielen Problemlösungen geholfen, aber an diesem sitz ich nun seit zwei Tagen und weder hier,
noch im sonstigen Googleversum habe ich einen für mich verwertbaren Lösungsansatz gefunden.

Vorweg, ich bin auf eine Batchdatei festgelegt.

Zu meinem Problem:

Ich schreibe hier wie wild an einer Batch, die nichts anderes macht, als sowohl bestimmte Dateien, als auch in einer Listendatei angebbare Ordner in einen (immer dem Datum nach benannten) Backupordner zu sichern und diese auch, bis auf eine angegebene Zahl, wieder zu löschen um nur die aktuellsten X zu behalten.
Soweit so gut, es klappt auch alles wunderbar bis auf die Ordnerliste.

Mein Problem daran ist die Funktionsweise der -copy-Befehle, da diese immer den INHALT des Quellordners ind den Zielordner kopieren und nicht einfach den Quellordner selbst.

bsp:
xcopy "LFW:\xxxxx\yyyyy\zzzz" "LFW:\Backup\zzzz"

Da man aber in der Liste irgendwelche und beliebig viele Ordner angeben können soll, die dann aber trotzdem im Zielverzeichnis\Originalname landen sollen wird das etwas schwierig.
Ich muss also irgendwie den Quellordner aus dem Pfad-String auslesen und ihn als Zielordner in meine FOR-xcopy-Schleife angeben.

LFW:\xxxxx\yyyyy\ZZZZ --> LFW:\Backup\ZZZZ
LFW:\aaa\BBBB --> LFW:\Backup\BBBB
LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM ---> LFW:\Backup\MMMM

Mein bisheriger Ansatz dreht sich drum irgendwie die "\" im Pfad zu zählen (mit FINDSTR ?) und dann in der FOR-Schleife das Xte (letzte) Token anzugeben.
Und genau in diesem Zählen liegt mein Problem, ich bekomms einfach nicht hin.

Andere Lösungswege sind natürlich auch gern gesehen.

Vielen Dank schonmal
Mitglied: bastla
05.03.2009, aktualisiert 18.10.2012
Hallo Campari-O und willkommen im Forum!

Schau Dir mal diesen Beitrag an ...

Grüße
bastla
Bitte warten ..
Mitglied: Campari-O
05.03.2009 um 12:34 Uhr
Hallo bastla!

Danke für die schnelle Reaktion, aber
den kenn ich, wollte ich oben eigentlich auch rein schreiben. Hab ich wohl leider vergessen.
Der Unterschied ist, dass dort zumindest sicher ist, dass .xml-Dateien im Verzeichnis liegen, was dann als Anhaltspunkt verwendet werden kann.
Diesen Vorteil habe ich leider nicht. Ich habe völlig willkürliche Ordner.

Oder aber ich habe den Beitrag nicht verstanden, was ich nie ausschließe.

Habe auch schon einiges mit %~nxi versucht, ws aber leider immer zu der Meldung führte, dass ich Pfadoperatoren an dieser Stelle nicht verwenden könne.
Bitte warten ..
Mitglied: Biber
05.03.2009 um 13:05 Uhr
Moin Campari-O,

an dieser Stelle ist nichts Kompliziertes.... mach Dir da nicht so viele Gedanken:
01.
>for /f %i in ("LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM") do @echo LetzterPfadteil: [%~ni] 
02.
LetzterPfadteil: [MMM]
Vollkommen egal, ob es diesen "Pfadstring" gibt oder ob es überhaupt eine Windows-konforme Pfadangabe wäre.

Grüße
Biber
Bitte warten ..
Mitglied: Campari-O
05.03.2009 um 13:18 Uhr
Hi Biber

Hab das eben nochmal versucht.
Es kommt wie oben schon erwähnt die Meldung:

Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~ni]
Geben sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig sind.

14:26 Mist muss weg. Werd wohl erst morgen Früh weiterversuchen können. Bin mal gespannt wo mein Fehler liegt.
Im Prompt funktioniert die Zeile ja, nur eben nicht im Batch
Bitte warten ..
Mitglied: bastla
05.03.2009 um 14:44 Uhr
Hallo Campari-O!

Wenn's ein Batch sein soll, natürlich die "%"-Zeichen verdoppeln, daher also:
for /f %%i in ("LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM") do @echo LetzterPfadteil: [%%~ni] 
Grüße
bastla
Bitte warten ..
Mitglied: Campari-O
05.03.2009 um 23:33 Uhr
Das hab ich natürlich brav gemacht. Läge es daran, würd ich in die Tastatur beißen.
Aber ich bin fast sicher, dass es nur son Miniding ist, was ich überseh.
Bitte warten ..
Mitglied: Campari-O
06.03.2009 um 07:50 Uhr
Fragt mich nicht warum, aber heute gehts.
Kiste engeschaltet, Batch gestartet --> geht??? Naja, ich hasse diese Wunderheilungen, da man nie weiß worans nun lag.
Jetzt noch "demlims=" eingefügt und schon sind die Leerzeichen in den Pfaden auch dabei.

DANKE Leute!!!!
Bitte warten ..
Mitglied: Biber
06.03.2009 um 08:05 Uhr
Moin Campari-O,

Jetzt noch "demlims=" eingefügt und schon sind die Leerzeichen in den Pfaden auch dabei.
Also, an irgendwelchen "demlims" oder "gremlins" kann es eigentlich nicht liegen, dass es heute läuft...

Aber ich denke, ein "Erledigt"-Haken ist zwar noch nicht, aber wäre angebracht.

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Campari-O
06.03.2009 um 08:38 Uhr
Der kommt sofort, war nur nicht sicher, ob dann noch ne Antwort kommt :D
Wollt ja schließlich nochmal Danke sagen
Und da kommt er schon.
Das jetzt auftretende Problem, dass mir xcopy nur den letzten Ordner der liste kopiert und bei den anderen "unzulässige Parameterzahl" behauptet werd ich schon finden.
Sein kanns ja eigentlich nicht, da die copy Anweisung in einer Schleife steckt --> alle Anweisungen haben die selben Parameter.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Letzten Unter-Ordner auf Pfad heraustrennen in Excell 2010
gelöst Frage von Rene1976Microsoft Office2 Kommentare

Hallo, gibt es eine Möglichkeit wenn in einer Spalte die Pfade (ohne Dateinamen) stehen, daraus in einer anderen Spalte ...

Batch & Shell
Pfad zu den Userprofilen dynamisch ermitteln
gelöst Frage von ViprexBatch & Shell6 Kommentare

Hallo, ich sitze nun schon länger und grüble darüber nach, wie ich den Pfad zu den Userprofilen unter Windows ...

Batch & Shell
BATCH: Sharename Pfad Berechtigten (auch Gruppen) und die letzte Änderung in Batch Skript auslesen
Frage von nowyouseeme93Batch & Shell2 Kommentare

Hallo ihr Lieben, mein erster Teil zu der Frage wie ich Sharenamen und Pfad aus net share oder wmic ...

Windows Tools
Powershell: Aus String die letzten Werte ermitteln
Frage von ColoneltwWindows Tools3 Kommentare

Hallo liebe Foristen, ich sitze an einem kleinen Powershell Problem. Ich habe einen UNC Pfad und möchte das letzte ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 22 StundenMicrosoft Office8 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner14 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...