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

Jede Zeile einer TXT Datei in eine Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: bodyparts

bodyparts (Level 2) - Jetzt verbinden

27.12.2009 um 19:29 Uhr, 4404 Aufrufe, 8 Kommentare

Moin...

hoffe auf nachträgliche Hilfe zu Weihnachten..... ;>)

also jede 1. Zeile einer txt Datei die sich in d:\Daten\ befinden soll in eine txt Datei geschrieben werden und mit Pfandangabe wo sich diese Datei befinden.
Da immer wieder in diesen Dateien gesucht wird habe ich überlegt das man erstamal alle Datei duchsucht und dann nur noch in der "Ergebnissdatei" sucht.
Im Ordner d:\Daten liegen ca 1000 Unterordner somit dauert die Suche in allen Dateien immer etwas und die Platte wird nicht immer wieder so stark beansprucht.

Ergebinss könnte so aussehen...

Daten der 1.Zeile d:\daten\ordner_xyz
Daten der 1. Zeile d:\daten\ordner_abc
usw

Gruß
Mitglied: rubberman
27.12.2009 um 19:53 Uhr
Hallo bodyparts,

ungetestet etwa so:
01.
@echo off &setlocal 
02.
set Quelle=d:\daten 
03.
set Ergebnisdatei=d:\test.txt 
04.
 
05.
type nul>"%Ergebnisdatei%" 
06.
pushd "%Quelle%" 
07.
for /f "delims=" %%a in ('dir /a-d /b /s *.txt') do set "Pfad=%%~dpa" &call :sub "%%a" 
08.
popd 
09.
goto :eof 
10.
 
11.
:sub 
12.
set /p ersteZeile=<%1 
13.
>>"%Ergebnisdatei%" echo %ersteZeile% %Pfad% 
14.
goto :eof
Grüße
rubberman
Bitte warten ..
Mitglied: bodyparts
05.01.2010 um 16:49 Uhr
so etwas her .... aber klasse

geht super

Danke

Ich würde jetzt gerne aus der Ausgabe einen Suchausdruck ( name x ) suchen und in der selben Zeile den String x:\daten..... im Explorer öffnen.
Sollte es mehere Suchausdrücke finden kann ruhig mehrmal der Explorer geöffnet werden, evtl könnte man es mit Pause stoppen.

Wäre echt klasse, wenn du eine Idee hättest

Gruß
Bitte warten ..
Mitglied: rubberman
06.01.2010 um 01:32 Uhr
Hallo bodyparts,

zu diesem Zweck ist die erzeugte Datei nicht geeignet. Grund: man muss Text und Pfad einigermaßen vernünftig wieder trennen können. Das Leerzeichen ist dafür ungeeignet.

Also ändere zunächst Zeile 13 im ersten Batch zu:
01.
>>"%Ergebnisdatei%" echo "%Pfad%"?%ersteZeile%
und erzeuge damit einen neue Ergebnisdatei.

Der Batch für dein Vorhaben könnte dann etwa so aussehen:
01.
@echo off &setlocal 
02.
set source=d:\test.txt 
03.
 
04.
set /p "findthis=Gib die Suchzeichenfolge ein: " 
05.
for /f "usebackq delims=? tokens=1*" %%a in ("%source%") do ( 
06.
  echo %%b|findstr /i /l /c:"%findthis%">nul &&(start "" "explorer.exe" /n,/e,%%a &pause) 
07.
)
Gruß
rubberman
Bitte warten ..
Mitglied: bodyparts
06.01.2010 um 14:48 Uhr
Hi Rubberman,

ich habe eine Testausgabe in die Datei test.txt auf D geschrieben.

c:\Daten\&name c

jetzt suche ich mit der Batch nach "name c", leider passiert nichts.
Bitte warten ..
Mitglied: rubberman
06.01.2010 um 15:21 Uhr
Hallo bodyparts,

OK. Erstmal komme ich jetzt erst dahinter, wie das ganze aussehen soll und zu Zweiten war das Trennzeichen ein "?" und darf keinesfalls ein "&" sein!

Eigentlich kann ich dir aber ohne weiteres nicht helfen. Nehmen wir an, eine Datei liegt unter "C:\Daten\irgendwo" und die erste Zeile ist "name c", dann ergibt sich in der test.txt folgende Zeile:
01.
"C:\Daten\irgendwo\"?name c
Die Frage ist aber:
Steht in der ersten Zeile immer das Format
01.
name x
oder könnte dort auch
01.
blabla name x blub
stehen?

Grüße
rubberman

Und:
Wenn du eh nur das x hinter name benötigst, wozu dann überhaupt der Pfad "C:\Daten\irgendwo\" mit in die Datei schreiben? Dann würde doch die erste Zeile der Datei völlig ausreichen, oder?
Bitte warten ..
Mitglied: bodyparts
08.01.2010 um 06:20 Uhr
Moin Rubberman,

sicher ist es egal wo die Daten liegen, das gebe ich ja als vari an.
Die Daten sehen immer so aus:

zb:

d:\Daten\wirrername\datei.txt
.
.
.d:\Daten\wiederwirrername\datei.txt

Die erste Zeile aus datei.txt ist wichtig, die wird im 1. Lauf komplett gesucht und in zb test.txt incl Pfad geschrieben. Funktioniert ja auch schon

Somit muss ich nicht immer 1000 Ordner durchsuchen und das schont die Festplatte.

Jetzt suche ich aus dem Ergebniss die erste Zeile das kann ein Name sein ( name xyz ) und wenn der gefunden ist möchte ich den Ordner direkt aufmachen..

Grüße BP
Bitte warten ..
Mitglied: rubberman
08.01.2010 um 23:42 Uhr
Hallo bodyparts,

was funktioniert dann am Code vom 06.01.2010, 01:32:51 nicht?

Wenn die Zeile in test.txt so aussieht:
01.
"d:\Daten\wirrername\"?name xyz
und du suchst nach xyz, dann wird der Explorer in d:\Daten\wirrername geöffnet.

Grüße
rubberman
Bitte warten ..
Mitglied: bodyparts
09.01.2010 um 13:31 Uhr
Hallo Rubberman,

sorry, ich habe nicht in der Richtigen Umgebung getestet.

Dein Script läuft super!

Bin schwer begeistert.

Nun kann ich die ca. 1000 Ordner viel besser durch suchen. Immer wenn neue Ordner dazu kommen, werde ich den Scann einmal laufen lassen und nur noch in der Ergebinssdatei suchen, top!

Danke Dir
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst 2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben (6)

Frage von sid.pdm zum Thema Batch & Shell ...

Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...