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 Problem mit der Adressierung von Tokens

Mitglied: 43344

43344 (Level 1)

18.02.2008, aktualisiert 13:19 Uhr, 3942 Aufrufe, 7 Kommentare

Morgen zusammen,

ich möchte -stark vereinfacht- über eine Batch Dateien löschen, deren Pfad und Name aus einer .txt gelesen wird. Da ich aber nicht den kompletten Pfad brauchen kann, muss ich die ersten drei Tokens abschneiden.

Soweit bin ich und das funktioniert, leider aber auch nicht mehr Da es sich um Datei-/Verzeichnisnamen handelt, weiss ich vorher nicht, wie viele Tokens die Schleife "abklappern" muss. Wie kann ich das ermitteln und der Schleife mitgeben???

01.
dir /S /B > c:\temp\purge\list.txt 
02.
for /f "delims=\, tokens=4-15" %%i in ('type list.txt') do ( 
03.
if exist f:\daten\%%i 
04.
del %%i <yes.txt)
Danke im Voraus
Mitglied: Dani
18.02.2008 um 08:57 Uhr
Moin, Moin,
äh..warum willst du denn den Pfad abschneiden?! Denn wenn es der wirklich der komplette / absolute Pfad ist, ist es Wurst.

01.
@echo off 
02.
 
03.
for /f "delims=" %%i in ('dir /s /b') do del "%%i"
Wenn deine 4 Zeilen in einer Batch hintereinander stehen, so kannst du meine 2 Zeilen benutzen. Macht genau das Gleiche!

Ansonsten poste uns mal den Inhalt von "list.txt".


Grüße
Dani
Bitte warten ..
Mitglied: 43344
18.02.2008 um 09:07 Uhr
Denk dir einen x-beliebigen "dir /S /B". Die ersten drei Tokens sind immer gleich, der Teil, den ich für den Vergleich (if exist) benötige ist immer anders:

C:\Dokumente und Einstellungen\Admin\Desktop>dir /S /B
C:\Dokumente und Einstellungen\Admin\Desktop\ASRflash.EXE
C:\Dokumente und Einstellungen\Admin\Desktop\BootDisk2BootStick.lnk
C:\Dokumente und Einstellungen\Admin\Desktop\CR13D6_1.30
C:\Dokumente und Einstellungen\Admin\Desktop\CR13D6_1.40
C:\Dokumente und Einstellungen\Admin\Desktop\CR13D6_1.50
C:\Dokumente und Einstellungen\Admin\Desktop\DVDFab Gold 4.lnk
C:\Dokumente und Einstellungen\Admin\Desktop\putty.exe
C:\Dokumente und Einstellungen\Admin\Desktop\ReGet Deluxe.lnk
C:\Dokumente und Einstellungen\Admin\Desktop\StreamRipper32.lnk
C:\Dokumente und Einstellungen\Admin\Desktop\SystemProfiler.zip
C:\Dokumente und Einstellungen\Admin\Desktop\vcredist_x86.exe
C:\Dokumente und Einstellungen\Admin\Desktop\Verknüpfung mit downloads.lnk
C:\Dokumente und Einstellungen\Admin\Desktop\vlc-0.8.6d-win32.exe
C:\Dokumente und Einstellungen\Admin\Desktop\WinImage.lnk



In diesem Beispiel würde ich also:

Desktop\ASRflash.EXE
Desktop\BootDisk2BootStick.lnk
...
Desktop\WinImage.lnk

brauchen. Da ich aber leider nicht sagen kann, ob ein DAU nicht noch 12 Unterordner erstellt hat, muss ich irgendwie dynamisch die Tokens ansprechen, hab aber überhaupt keinen Plan, ob geschweige denn wie das gehen könnte ....

Gruß

Markus
Bitte warten ..
Mitglied: Dani
18.02.2008 um 09:22 Uhr
Hallo Markus,
ok...also du möchtest einfach eine TXT-Liste einlesen, die du mal erstellt hast oder wird diese zur Laufzeit des Batches erzeugt, in dem du auch löschen möchtest?!

Version 0.1:
01.
echo off 
02.
 
03.
for /f "delims=" %%i in ('dir /s /b /a:-d') do del "%%i"
Durch "a:-d" werden nur Dateien gelöscht - keine Verzeichnisse. Das Minus steht für die Umkehrung der Option "d". "d" heißt normal:"Gebe mir nur Verzeichnisse aus". Nun wird alles ausgegeben,was kein Verzeichnis ist.

Falls der Pfaf immer gleich bleibt, kannst du ihn auch fest definieren:
01.
set pfad=C:\Dokumente und Einstellungen\%username%\Desktop 
02.
for /f "delims=" %%i in ('dir /s /b /a:-d "%pfad%"') do del "%%i"
Somit wird wird immer das Verzeichnis + Unterverzeichnis durchsucht und die Dateien gelöscht.


Grüße
Dani
Bitte warten ..
Mitglied: miniversum
18.02.2008 um 10:49 Uhr
Was Du machen willst würde dem hier entsprechen:
for /f "delims=\ tokens=3,*" %%i in ('dir /S /B') do (
if exist "f:\daten\%%j" (
del /Q "%%j"
)
)
Wobei es so zu Fehler führen kann.

Prinzipiell benötigst du eine Trennung von Dateien und Verzeichnissen. Denn wenn ein Verzeichnis gelöscht wird existieren die darin enthaltenen Dateien ja nicht mehr und ein löschen wollen würde zur Fehlermeldung führen. Daher wäre so besser:
for /f "delims=\ tokens=3,*" %%i in ('dir /S /B /AD') do (
if exist "f:\daten\%%j" (
rd /s /Q "%%j"
)
)
for /f "delims=\ tokens=3,*" %%i in ('dir /S /B /A-D') do (
if exist "f:\daten\%%j" (
del /Q "%%j"
)
)

miniversum
Bitte warten ..
Mitglied: Dani
18.02.2008 um 12:25 Uhr
@miniversum
Warum fragst du per IF noch ab wenn das nächste Statement schon der Löschebefehl ist. Macht doch keinen Sinn oder? Genauso mit dem Delims...ob du nun den absoluten oder den relativen Pfad nimmst, ist egal - Entfernt wird es auf jeden Fall. Die Abfrage wird doch nur kleiner und somit übersichtlicher.


Grüße
Dani
Bitte warten ..
Mitglied: miniversum
18.02.2008 um 12:49 Uhr
Ich habe mich an der ursprünglichen Batchdatei im Ausgangsposting und an dem zweiten Posting von Stylewalker orientirt.
Ich verstehe es dann so:
Die Batchdatei liegt im Verzeichnis "C:\Dokumente und Einstellungen\Admin\Desktop"
Auf "f:\daten\" existiert eine Kopie der Daten ab \Desktop\.
Es wird eine Liste aller Dateien und Verzeichnisse erstellt (list.txt).
Danach wird jede einzelne Datei und jedes Verzeichnis verglichen ob sie auf "f:\daten\" existieren. Existieren sie dort schon erden sie auf "C:\Dokumente und Einstellungen\Admin\Desktop" gelöscht.
So interpretiere ich das ganze zumindest.
Und daher braucht man auch das weglassen der ersten drei token.
Die Alternative wäre den Teil "C:\Dokumente und Einstellungen\Admin\" der ausgelesenen Pfade durch "f:\daten\" zu ersetzen, was auf das gleiche hinauslaufen würde.

Besser wäre dann denke ich allerdings die Verwendung von xcopy /d /L "%~dp" "f:\daten\" statt dem dir Befehl um auch gleiche Datenstände zu überprüfen und nicht nur Dateinamen.
Bitte warten ..
Mitglied: 43344
18.02.2008 um 13:19 Uhr
Absolut korrekt miniversum, funktioniert prima. Danke schön!!
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
Fibre-Channel Adressierung
Frage von Netzwerkloewe2LAN, WAN, Wireless2 Kommentare

Hallo alle zusammen. Wir haben momentan die Aufgabe einen Server ausfallsicher zu machen. Wir benutzen dafür ein Bladecenter H ...

Hyper-V
IP-Adressierung Hyper-V
Frage von 113909Hyper-V4 Kommentare

Hallo, folgendes: Host (Windows 10 Pro) Server (Windows Server 2012 R2) mit Hyper-V virtualisiert. Ich möchte, dass der Host ...

Router & Routing
Adressierung über einen ARP-Proxy
gelöst Frage von HanDokuRouter & Routing6 Kommentare

Ich versuche aus Deutschland ein Gerät mit der IP 192.168.1.10 in unserem Ferienhaus in Frankreich anzusprechen. Der Fernzugriff für ...

Batch & Shell

Warum Funktioniert der tokens befehl nicht

gelöst Frage von DomiZone1Batch & Shell5 Kommentare

Hallo liebe Administartor Community Ich Beis gleich in mein nicht vorhandenes lenkrad :D der befehl: for /f "delims=: tokens1,2" ...

Neue Wissensbeiträge
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 14 StundenPeripheriegeräte1 Kommentar

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 1 TagWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 1 TagWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 3 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
Frage von VoiperHumor (lol)29 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

Windows Server
W2K16 Essentials: keine Namensauflösung nach der Einrichtung DNS + AD DS
Frage von Ben-WittWindows Server22 Kommentare

Ich versuche bereits seit ca. 4 Wochen einen Server 2016 "Essentials" richtig zu installieren. An diesem Server möchte ich ...

Exchange Server
Exchange Backup 10 Jahre Aufbewahrung
Frage von arccosExchange Server20 Kommentare

Hallo zusammen. Aktuell beschäftigen mich ein paar Fragen zum Thema Office365/ Exchange. 1.10 Jahre Aufbewahrungspflicht sicherstellen 2.Kann man als ...

Windows Netzwerk
LTE Modul - Kein Internet trotz Verbindung
Frage von killtecWindows Netzwerk18 Kommentare

Hallo, ich habe hier ein Dell 7390 2-in-1 mit W10 Pro wo ich nachträglich eine LTE-Karte (Original Dell DW5811e ...