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

über batch nen text kürzen

Frage Entwicklung Batch & Shell

Mitglied: extended

extended (Level 1) - Jetzt verbinden

28.11.2010 um 10:09 Uhr, 4190 Aufrufe, 5 Kommentare

Hi, ich habe folgendes Problem.

Ich habe eine Liste meiner pdf-Datein. (alle liegen in verschiedenen Ordner)
diese sieht ungefähr so aus:

c:\verschiedenes\12345\blabla.pdf
c:\verschiedenes\4r232\blub.pdf
c:\verschiedenes\2jd983\nocheine.pdf


Nun möchte ich aber nur die Ordner aufgelistet haben, also ungefähr so

c:\verschiedenes\12345
c:\verschiedenes\4r232
c:\verschiedenes\2jd983

also alle Zeichen in der Textdatei von .pdf bis zum ersten / löschen.


ist die über ein Batch-skript zu realisieren?
Mitglied: 90776
28.11.2010 um 11:01 Uhr
hallo

zuerst ein paar fragen

1. liegen alle ordner in c:\verschiedenes?
2. sind die ordnernamen immer gleich aufgebaut?
3. sind die dateinamen immer gleich aufgebaut?

Grüsse Switcher
Bitte warten ..
Mitglied: MiniStrator
28.11.2010 um 11:04 Uhr
Hallo,

dir /b /s *.>textdatei.txt

Dann hast du zwar ne neue Textdatei aber das wird wurscht sein?

Gruß
Bitte warten ..
Mitglied: 76109
28.11.2010 um 11:20 Uhr
Hallo extended!

Das ließe sich mit einem VB-Script (*.vbs) in etwa so machen (Pfad-Konstanten anpassen):
01.
Const ListeAlt = "C:\Test\Liste.Txt"		'Datei-Liste mit Dateipfaden 
02.
Const ListeNeu = "C:\Test\ListeNeu.Txt"		'Datei-Liste mit Verzeichnispfaden 
03.
 
04.
Dim Fso, File, Text, TextZeile, Folder 
05.
     
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
     
08.
Set File = Fso.OpenTextFile(ListeAlt) 
09.
     
10.
Text = Split(File.ReadAll, vbCrLf):  File.Close 
11.
     
12.
Set File = Fso.CreateTextFile(ListeNeu) 
13.
     
14.
For Each TextZeile In Text 
15.
    Folder = Fso.GetParentFolderName(TextZeile)		 
16.
    If Fso.FolderExists(Folder) Then File.WriteLine Folder 
17.
Next 
18.
     
19.
File.Close
In der Codezeile 12 könnte anstatt (ListeNeu) auch (ListeAlt) stehen, wobei dann die bestehende List-Datei überschrieben wird.
Desweiteren, werden nur Verzeichnispfade aufgelistet, die auch tatsächlich existieren.

Gruß Dieter
Bitte warten ..
Mitglied: bastla
28.11.2010 um 12:32 Uhr
Hallo extended!

Ergänzend zu den obigen Vorschlägen eine "minimale" und eine "extended"-Variante in Batch:

Wenn Du mit dem "\" am Ende des Pfades und ev Dubletten im Ergebnis leben kannst, wäre die einfachste Möglichkeit (gleich direkt an der Kommandozeile einzugeben):
for /f "usebackq delims=" %i in ("D:\Liste Deiner PDF.txt") do @echo %~dpi
Um sowohl den "\" zu verhindern als auch im Ergebnis Mehrfachnennungen des Pfades zu vermeiden, wäre dann doch ein Batch erforderlich:
01.
@echo off & setlocal 
02.
set "Ein=D:\Liste Deiner PDF.txt" 
03.
set "Aus=D:\Liste der Ordner Deiner PDF.txt" 
04.
 
05.
::Ausgabedatei leer erzeugen (muss für "findstr" bereits existieren) 
06.
type nul>"%Aus%" 
07.
:: Schleife über alle Zeilen der Eingabedatei, 
08.
:: wobei der Pfad in der gleichnamigen Variable zwischengespeichert und 
09.
:: für jeden Pfad das eigentliche Verarbeitungs-Unterprogramm aufgerufen wird 
10.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Pfad=%%~dpi" & call :ProcessLine 
11.
:: Ergebnis zur Kontrolle ausgeben 
12.
type "%Aus%" 
13.
:: Ende des Hauptprogrammes 
14.
goto :eof 
15.
 
16.
:ProcessLine 
17.
:: Wenn kein Root-Ordner, abschließenden \ abschneiden 
18.
if "%Pfad:~-2%" neq ":\" set "Pfad=%Pfad:~,-1%" 
19.
:: Falls die Ausgabedatei bereits den Pfad enthält, 
20.
:: kein Eintrag erforderlich und daher Rücksprung in das Hauptprogramm 
21.
findstr /i /x "%Pfad:\=\\%" "%Aus%">nul && goto :eof 
22.
:: Pfad der Ausgabedatei hinzufügen 
23.
>>"%Aus%" echo %Pfad% 
24.
:: Zurück zum Hauptprogramm 
25.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Biber
28.11.2010 um 15:16 Uhr
Moin extended.

keine Ahnung, ob das auch über ein Batchskript realisierbar wäre.

Ich würde es einfach über eine Halbzeile vom CMD-Prompt abfackeln.
Beispiel mit meinen *.pdfs im Verzeichnis d:\Biber\Dokus und darunter:
das führende ">" in der Eingabezeile ist Teil meines Prompts - nicht mit eingeben

(=15:15:43  d:\Biber\temp=) 
>for /r "d:\Biber\Dokus" /d %i in (*) do @if exist "%i\*.pdf" @echo %i 
d:\Biber\Dokus\BusinessObjects 
d:\Biber\Dokus\DB2 
d:\Biber\Dokus\ErWin 
d:\Biber\Dokus\Excel 
d:\Biber\Dokus\Links 
d:\Biber\Dokus\M$Scripting 
d:\Biber\Dokus\Oracle 
d:\Biber\Dokus\SQL 
d:\Biber\Dokus\ToolDoku 
d:\Biber\Dokus\VBS 
d:\Biber\Dokus\DB2\Addons_PDB 
d:\Biber\Dokus\DB2\Diverse addons 
d:\Biber\Dokus\M$Scripting\PowerShell_Workshop 
d:\Biber\Dokus\Oracle\Oracle-Tuts
Müsste auch mit einem Verzeichnis "c:\verschiedenes" klappen.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...