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

Frage Entwicklung Batch & Shell

GELÖST

Stringsuche in txt und vorherige Zeile extrahieren

Mitglied: DMaaan

DMaaan (Level 1) - Jetzt verbinden

07.07.2009, aktualisiert 21:35 Uhr, 4198 Aufrufe, 2 Kommentare

Hallo miteinander,

da ich hier schon sehr viele kompetente Hilfsbeiträge gelesen habe hoffe ich, dass es auch für mein Problem eine Lösung gibt :

Ich möchte eine Textdatei nach einem bestimmten String durchsuchen, der String hat immer die Form "Buchstabe:", also z.B.

J:

Es geht darum, dass ich mit dem Befehlt mountvol die verschiedenen Datenträger aufliste, die Liste nach dem gewünschten Buchstaben durchsuche
und bei einem Treffer einen Teil der vorherigen Zeile in einen String speichere.

Inhalt meiner Textdatei:

Erstellt, l”scht oder listet einen Volumebereitstellungspunkt auf.

MOUNTVOL [Laufwerk:]Pfad Volumename
MOUNTVOL [Laufwerk:]Pfad /D
MOUNTVOL [Laufwerk:]Pfad /L
MOUNTVOL [Laufwerk:]Pfad /P
MOUNTVOL /R
MOUNTVOL /N
MOUNTVOL /E

Pfad Gibt das (bereits vorhandene) NTFS-Verzeichnis an, auf dem der
Bereitstellungspunkt eingerichtet werden soll.
Volumename Gibt den Namen des bereitzustellenden Volumes an.
/D L”scht den Bereitstellungspunkt vom angegebenen Verzeichnis.
/L Zeigt den Namen des bereitgestellten Volumes fr das
angegebene Verzeichnis an.
/P Entfernt den Volumebereitstellungspunkt vom angegebenen
Verzeichnis, entfernt die Volumebereitstellung und setzt das
Volume nicht mehr bereitstellbar.
Sie k”nnen das Volume wieder bereitstellbar machen, indem Sie
einen Volumebereitstellungspunkt erstellen
/R Entfernt Verzeichnisse fr Volumebereitstellungspunkte und
Registrierungseinstellungen fr Volumes d. im System nicht mehr
existieren.
/N Deaktiviert das automatische Bereitstellen neuer Volumes.
/E Aktiviert das automatische Bereitstellen neuer Volumes wieder.

M”gliche Werte fr VolumeName mit aktuellen Bereitstellungspunkten:

\\?\Volume{341e1d61-594d-11de-b993-806e6f6e6963}\
* KEINE BEREITSTELLUNGSPUNKTE *

\\?\Volume{341e1d5f-594d-11de-b993-806e6f6e6963}\
* KEINE BEREITSTELLUNGSPUNKTE *

\\?\Volume{341e1d71-594d-11de-b993-806e6f6e6963}\
G:\

\\?\Volume{7c93c6f3-5bef-11de-88c5-001d605cbed4}\
I:\

\\?\Volume{341e1d60-594d-11de-b993-806e6f6e6963}\
C:\

\\?\Volume{69871728-67e8-11de-9dbe-001d605cbed4}\
J:\

\\?\Volume{341e1d72-594d-11de-b993-806e6f6e6963}\
H:\

\\?\Volume{8f903bfb-67c2-11de-b33e-001d605cbed4}\
D:\

\\?\Volume{9b457b0d-6750-11de-8f3a-001d605cbed4}\
Das System kann die angegebene Datei nicht finden.
\\?\Volume{341e1d66-594d-11de-b993-806e6f6e6963}\
A:\

\\?\Volume{341e1d64-594d-11de-b993-806e6f6e6963}\
E:\

\\?\Volume{341e1d65-594d-11de-b993-806e6f6e6963}\
F:\


Die Variable mit dem Buchstaben, die übergeben wird, heißt %ED%. Eine besonderheit hierbei muss noch sein,
dass nach dem Buchstaben VOR der Variablen gesucht wird, also wenn ich zum Beispiel in %ED% I: übergeben bekomme,
soll an die Suchfunktion H: übergeben werden.

Wenn nun in der txt H: gefunden wird, sollte die darüberliegende Zeile


"\\?\Volume{341e1d72-594d-11de-b993-806e6f6e6963}\"


in einem String gespeichert werden.


Hintergrund ist, dass ich das Mounten eines mit TrueCrypt verschlüsselten EXTERNEN Laufwerks automatisieren will, unabhängig davon, an welchem PC ich es anschließe und wie dort die Laufwerksbuchstabenbelegungen sind.
Meine Festplatte ist in zwei Partitionen unterteilt, auf der zweiten Partition läuft TrueCrypt, dass beim Anschließen automatisch das Laufwerk durch Starten der Bat (bis auf die Passworteingabe) entschlüsseln soll. Hierzu lasse ich
erst die Roots aller Laufwerksbuchstaben nach einer bestimmten File durchsuchen die auf meiner zweiten Partition liegt, wenn diese gefunden wird weiß ich, dass der vorherige Laufwerksbuchstabe zur ersten - verschlüsselten - Partition gehört, deshalb wähle ich den Buchstaben, der vor dem liegt, der in %ED% gespeichert ist.
Mit dem extrahierten String (\\?\Volume{341e1d72-594d-11de-b993-806e6f6e6963}\) kann ich mir nun einen Startparameter für TrueCrypt zusammenbauen.

Soweit die Theorie, in der Praxis haperts leider noch etwas im Bereich "Durchsuchen der Textdatei", ich hoffe ihr könnt mir hier helfen und ich hoffe, mein Beitrag ist nicht zu ausführlich.

Mit freundlichen Grüßen,

DMaaan
Mitglied: rubberman
08.07.2009 um 02:24 Uhr
Versuch mal was in der Art:
01.
@echo off &setlocal 
02.
 
03.
:: dein Vorspiel: (nur zu Testzwecken %ED% mit Wert I:) 
04.
Set "ED=I:" 
05.
 
06.
 
07.
:: ****Start 
08.
:: deine Textdatei (anpassen): 
09.
set file=c:\test\mountvol.txt 
10.
 
11.
Set "EDshort=%ED:~0,1%" 
12.
Set "LW=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" 
13.
for %%a in (%LW%) do ( 
14.
if defined EDfind goto weiter 
15.
call :sub1 %%a 
16.
17.
:weiter 
18.
for /f "tokens=*" %%a in (%file%) do ( 
19.
if defined string goto Verarbeitung 
20.
call :sub2 %%a 
21.
22.
 
23.
:sub1 
24.
if defined lwbefore ( 
25.
 if %EDshort%==%1 set "EDfind=%lwbefore%:\" 
26.
27.
set "lwbefore=%1" 
28.
goto :eof 
29.
 
30.
:sub2 
31.
if defined linebefore ( 
32.
 if %EDfind%==%1 set "string=%linebefore%" 
33.
34.
set "linebefore=%1" 
35.
goto :eof 
36.
:: ***Ende 
37.
 
38.
 
39.
:Verarbeitung 
40.
:: ab hier dein weiterer Code: (nur zu Testzwecken Ausgabe von %string%) 
41.
echo %string% 
42.
pause
Bitte warten ..
Mitglied: DMaaan
08.07.2009 um 10:23 Uhr
Vielen Dank, funktioniert perfekt!

MfG DMaaan
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Aus txt-Datei email-Adressen extrahieren
Frage von depperl1968Batch & Shell3 Kommentare

Hallo alle zusammen :-) mir liegt eine txt-Datei vor, aus der ich gerne die email-Adressen extrahieren würde. Dies kann ...

Batch & Shell
Mit Batch Zeilen aus TXT modifizieren
gelöst Frage von chef1568Batch & Shell4 Kommentare

Hallo zusammen, leider konnte ich mit den bisherigen Threads mein Problem bisher nicht lösen. Problemstellung: In einer Textdatei sind ...

Batch & Shell
Zeile mit Sonderzeichen in txt einfügen
gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

Batch & Shell
Letzte Zeile einer .txt in eine andere .txt ausschneiden per Batch
gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo zusammen, zu meinem obrigen Thema habe ich leider nur in Richtung löschen und nicht in Richtung ausschneiden etwas ...

Neue Wissensbeiträge
CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 2 StundenCPU, RAM, Mainboards1 Kommentar

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 16 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 22 StundenDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 1 TagMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement25 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
Frage von Forseti2003Windows Server17 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör14 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...