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

DirList Ausgabe in Textdatei formatieren

Frage Entwicklung Batch & Shell

Mitglied: fugu

fugu (Level 2) - Jetzt verbinden

08.03.2006, aktualisiert 22.03.2006, 14224 Aufrufe, 9 Kommentare

ohne Pfadangaben

Moinz an alle Batch-Profis!

Also bis hier hin ist das ja noch leicht:

---
dir D:\eBooks /s /b >> eBooks.txt
---

Kann man dem Ganzen jetzt noch "verbieten" immer die Pfadangabe mit auszugeben? Ich möchte nur die Dateinamen in der Textdatei haben.

Thx, Fugu
Mitglied: Dani
08.03.2006 um 14:44 Uhr
Hi,
ich hab das so hinbekommen, dass nur die im angegebenen Pfad in der txt - Datei landen.
Einfach " /s /b " weglassen.

Gruß
Dani
Bitte warten ..
Mitglied: 13100
08.03.2006 um 14:47 Uhr
/s hebt /b auf, soweit ich weiss, also ohne /s müsste es gehen.
Bitte warten ..
Mitglied: fugu
08.03.2006 um 14:54 Uhr
Jo prima, this worx!
Nur ist das jetzt ohne Unterverzeichnisse.
D. h. ich kann keine doppelte Einträge finden und ich müsste alle Unterverzeichnisse extra eingeben.

Vielleicht noch andere Ideen?

Fugu
Bitte warten ..
Mitglied: Dani
08.03.2006 um 17:07 Uhr
Hi,
probier das mal:

For /F "delims=" %%i in ('dir *.*') do echo %%i >>C:\text.txt


Gruß
Dani
Bitte warten ..
Mitglied: djbrandt
09.03.2006 um 15:30 Uhr
Hallo,

versuch mal mit:


for /f "usebackq" %i in (`dir /s /b`) do @echo %~ni.%~xi

sorry, kleiner bug

also in Deinem Fall

for /f "usebackq tokens=*" %i in (`dir D:\eBooks /s /b`) do @echo %~ni%~xi >> eBooks.txt

Gruß

Dieter
Bitte warten ..
Mitglied: Biber
15.03.2006 um 22:10 Uhr
Moin fugu,
ich versuch auch mal herzuleiten, wie ich es angehen würde..

In meinem Beispiel suche ich mal nicht nach allen Dateien auf d:\ebooks, sondern nach allen Dateien D:\temp\d*.zip
Ich mache es mal in Zwischenschritten am CMD-Prompt.
Step 1 Settings... a) Mein DIR-Befehl und b) meine ListDatei
$cmd$ set "mydircmd=dir d:\temp\d*.zip /s /b"
$cmd$ Set "lst=con"

Step 2
$cmd$ for /f "delims=" %i in ('%myDircmd%') do @echo [%~nxi] [%~dpi]

[DPNachnahme.zip] [d:\temp\]
[disco4i.jar-796e158a-7924f48a.zip] [d:\temp\Backup1\tsprofil\Oracle Jar Cache\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW004\TEST_P\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW005\TEST_ME\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\Dbvisu\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]
[db2javaV72FP7.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]

Step 3
Den Outputkrams gleich mal alphabetisch in die Ausgabedatei sortieren lassen:
$cmd$(for /f "delims=" %i in ('%myDircmd%') do @echo [%~nxi] [%~dpi])|sort >%lst%
[db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW004\TEST_P\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW005\TEST_ME\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\Dbvisu\]
[db2java.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]
[db2javaV72FP7.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]
[disco4i.jar-796e158a-7924f48a.zip] [d:\temp\Backup1\tsprofil\Oracle Jar Cache\]
[DPNachnahme.zip] [d:\temp\]

So habe ich (wenn ich dieses Ergebnis in eine echte Datei wegschreiben lasse, alles nach Dateinamen sortiert und die Verzeichnisnamen hintendran.
Step 4 Listfile ändern und letzten Befehl nochmal abschicken
$cmd$ Set "lst=alldzips.txt"
$cmd$ (for /f "delims=" %i in ('%myDircmd%') do @echo [%~nxi] [%~dpi])|sort >%lst%


So, nun wäre die halbe Aufgabe gelöst...
Willst Du nur eine Liste nur mit Dateinamen:
>for /f "delims=][ tokens=1,3" %i in (%lst%) do @echo %i
db2java.zip
db2java.zip
db2java.zip
db2java.zip
db2javaV72FP7.zip
disco4i.jar-796e158a-7924f48a.zip
DPNachnahme.zip

Wenn Du jetzt noch schnell alle "doppelten" Dateinamen sehen willst, reicht folgende eine Zeile am CMD-Prompt

$cmd$for /f "delims=][ tokens=1,3" %i in (%lst%) do @find /n "%i" %lst%|@find /v "%j"|find /v /i "%lst%"

[2][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW005\TEST_ME\]
[3][db2java.zip] [d:\temp\unterverzeichnis_neu\Dbvisu\]
[4][db2java.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]

[1][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW004\TEST_P\]
[3][db2java.zip] [d:\temp\unterverzeichnis_neu\Dbvisu\]
[4][db2java.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]

[1][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW004\TEST_P\]
[2][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW005\TEST_ME\]
[4][db2java.zip] [d:\temp\unterverzeichnis_neu\Sql-Workbench\]

[1][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW004\TEST_P\]
[2][db2java.zip] [d:\temp\unterverzeichnis_neu\DB2GW005\TEST_ME\]
[3][db2java.zip] [d:\temp\unterverzeichnis_neu\Dbvisu\]


Ich erläutere mal diese Zeile:
for /f "delims=][ tokens=1,3" %i in (%lst%) do (....
Für alle Zeilen in der %lst%-Datei, also in meiner alldzips.txt...
...lese alle Zeilen...
...die Tokens sollen getrennt sein mit eckigen Klammern "[" und "]"...
...Ich will nur das erste und das dritte Token ..(Token2 ist ein Leerzeichen)

@find /n "%i" %lst%|@find /v "%j"|find /v /i "%lst%"

Erstes Find: Gib die Zeilennummer aus ("/n") für jede Fundstelle von Token1==Dateiname"
Zweites Find: lösch die Zeile aus dem Ergebnis, die exakt den gleichen Pfadnamen enthält
drittes Find: lösch alle Zeilen, die nur den Dateinamen Alldzips.txt enthalten.

Also..summa summarum - ein Batch lohnt sich eigentlich gar nicht... mit zwei runtergetippten Zeilen am Prompt ließe sich das alles lösen..

Als Batch:
Einfach die Zeilen oben übernehmen,
bei den Zählvariablen alle einfachen Prozentzeichen durch doppelte ersetzen,
und die Steuerzeichen maskieren..
Und für mydircmd einsetzen: dir c:\Ebooks\*.*

::------ snipp EbookSearch.bat
@echo off & setlocal
set "mydircmd=dir D:\ebooks\*.* /s /b"
Set "lst=alldzips.lst"
(for /f "delims=" %%i in ('%myDircmd%') do @echo [%%~nxi] [%%~dpi]) |sort>%lst%
for /f "delims=][ tokens=1,3" %%i in (%lst%) do @find /n "%%i" %lst%|@find /v "%%j"|find /v /i "%lst%"
::------snapp EbookSearch.bat

Thats all...
HTH Biber
Bitte warten ..
Mitglied: fugu
16.03.2006 um 14:15 Uhr
*schluck*

Moin Moin!
Also Biber, DAS muss ich mir in Ruhe antun ... heute Abend/Nacht!

Gaaanz viel Dankeschön erstmal. Ich poste später, ob ich damit klar gekommen bin

Greetz Fugu
Bitte warten ..
Mitglied: Biber
16.03.2006 um 14:32 Uhr
Moin fugu,

lass Dich nicht von der vielen Prosa abschrecken.

Tipp zur Probe einfach mal am CMD-Prompt ein:
(for /f "delims=" %i in ('dir d:\eBooks\*.* /s /b') do @echo [%~nxi] [%~dpi])|sort

...dann siehst Du ja, ob es in die richtige Richtung geht.
Der Rest ist ja nur Blendwerk *gg

Gruß Biber
Bitte warten ..
Mitglied: fugu
22.03.2006 um 13:10 Uhr
Moin Biber,

hat etwas gedauert, aber immerhin...
Hab mir das jetzt alles angeschaut und kann damit alles lösen, was ich möchte.

[Zitat]
"ein Batch lohnt sich eigentlich gar nicht... "
[Zitat Ende]

Für dich vielleicht nicht aber wer so wie ich die doch recht kryptischen DOS-Befehle nicht so drauf hat, ist es ganz angenehm für sowas 'ne "Gedächtnis-Stützen-Batch" zu haben.

Gruss und Danke (volle Punktzahl)

Fugu
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Python
Python - ausgabe formatieren

Frage von BadFsaadKl zum Thema Python ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen (3)

Frage von Raaja89 zum Thema Batch & Shell ...

Windows Server
Windows Remote App - Ausgabe in lokales Office (1)

Frage von fluluk zum Thema Windows Server ...

Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...