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

Wie kann man mehere Werte aus einer Textdatei in verschiedene Variablen speichern?

Frage Entwicklung Batch & Shell

Mitglied: ArthurNYArthur

ArthurNYArthur (Level 1) - Jetzt verbinden

25.02.2010, aktualisiert 10:04 Uhr, 4873 Aufrufe, 8 Kommentare

Bitte um hilfreiche Tipps oder Lösungen.

Hallo an alle Batch-Experten ,

ich habe ein kleines Problem.
Ich habe eine Batchdatei geschrieben, welche die Serial Number von Zertifikaten ausliest und in einer datei abspeichert. Das zum Verständnis:

CODE:

@echo off
SETLOCAL

@SET LOG=%COMPUTERNAME%.log

rem @certutil -store -user | findstr /i /C:"Serial Number:" >>%LOG%
FOR /F "tokens=3,*" %%i in ('certutil -store -user^|find "Serial Number:"') DO echo %%i >>%LOG%

@ECHO. >>%LOG%

ENDLOCAL

AUSGABE in Computername.log:

15489987aa
dfg899er7t895ew64twet4
8789rtzz8w8741wrt44t5eff7f
So, jetzt möchte ich, dass diese Werte unter Verschiedenen Variablen gespeichert werden und nicht nur unter %%i oder so. Am besten wäre, wenn diese gefundenen werte gleich unter verschieden Variablen gespeichtert werden und ich Sie dann einzeln aufrufen kann bzw. weiterverarbeiten kann.
Ein weiteres Problem ist, dass dies so allgemein wie möglich sein soll, da diese Werte varrieren.

Das bekomme ich leider nicht so ganz hin. Habt Ihr da eine Lösung?

Danke schon mal für eute Kommentare!
Mitglied: H41mSh1C0R
25.02.2010 um 10:35 Uhr
Wenn in einer Zeile immer nur eine Serial drinnen steht, schreibe doch beim erstellen der Datei vor der Serial einen selbst definierten TAG wie z.B. Serial1=.

Beim Auslesen nimmst du den TAG gleich als Name(ohne das "=" das ist der Delimiter) und schreibst die Serial dahinein.

Grüße
Bitte warten ..
Mitglied: ArthurNYArthur
25.02.2010 um 11:00 Uhr
Hallo H41mSh1C0R,

ich bin eig. ein Batch-Anfänger und deshalb wäre es hilfreich, wenn du es etwas deutlicher beschreiben würdest.
Also um meine Situation noch zu verdeutlichen:
der befehl certutil -store -user erzeugt diese date bzw. den Text:
402.203.0: 0x80070057 (WIN32: 87): ..CertCli Version
Certificate 0
Serial Number: DREeret34356
Issuer: O=ACNLB, C=SI
Subject: CN=XXXXXXXXXXXXXXXXXXXXXXXXX
Non-root Certificate
Cert Hash(sha1): cXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
No key provider information
Encryption test passed

Certificate 1
Serial Number: sdgtzu559e9r7uz
Issuer: OU=VeriSign Trust Network, OU=(c) 1998 VeriSign, Inc. - For authorized use only, OU=Class 3 Public Primary Certification Authority - G2, O=VeriSign, Inc., C=US
Subject: CN=Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
O=VeriSign, Inc., C=US
Non-root Certificate
Cert Hash(sha1): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
No key provider information
No stored keyset property
CertUtil: -store command completed successfully.

___________________________________________________________________________

So jetzt leses ich diese Serial Number raus und speichere den Code hinter Serial Number:!
da es aber mehere Zetifikate sein können soll er jeden "Code" unter einer anderen Variable speichern, doch das bekomme ich nicht ganz hin.
Habe es zwar hinbekommen, dass er nur diese Nummern unter einer datei abspeichert, aber es soll hat diese Werte unter verschiesdenen Variablen speichern.

Sorry, wenn ich mich unverständlich ausdrüche, bin aber unter Zeitdruck
Bitte warten ..
Mitglied: 60730
25.02.2010 um 11:11 Uhr
Moin,

Sorry, wenn ich mich unverständlich ausdrüche, bin aber unter Zeitdruck face-smile

davon wirds aber auch nicht besser und die Lösung kommt auch nicht schneller, wenn man dauernd nachfragen muß...

Ganz abgesehen davon, dass - wenn mehrere Zertifikate vorhanden sind und man nur die Seriennummer ausliest - für was soll das ganze denn sein? Klar mal ist Zertifikat 1 das und Zertifikat 3 jenes, was aber, wenn auf einmal Zerifikat 2 dieses ist.

Variablen - du stellst dir das recht einfach vor - wer liesst die aus/ verarbeitet die weiter?

Unter Zeitdruck wird das nix, wenn man sich keine Zeit nimmt oder einen Profi, der das in Ruhe macht.

Ps: zweimal mehere schreiben - davon wirds nicht besser - gib dir etwas Mühe und trink nen Kaffee

Gruß


[OT]
warum hab ich manchmal den Eindruck, wer seinem Chef was versprochen hat und es selbst nicht lösen kann, hätte gerne hier in millisekunden die Lösung für die der Chef das Gehalt überweist ??

Vielleicht liegts daran, dass ein guter Arbeiter, das Problem gut beschreiben kann?
[/OT]
Bitte warten ..
Mitglied: ArthurNYArthur
25.02.2010 um 11:37 Uhr
Hallo,

also eigentlich möchte ich Zertifikate exporiteren und abspeichern. aber es soll per Kommandos gehen.
Der Syntax zum exporieren von Zertifikaten lautet:

certutil -f -p 123456 -user -exportPFX 3ez56d1er70cf C:\Zertifikat\test\test333.pfx

Und ich will z.B diese Zeichenfolge "3ez56d1er70cf"(Seriennummer des Zertifikats) nicht manuell für jedes Zertifikat eingeben, sondern es soll unter einer Variable bzw. wenn es mehere Nummern gibt unter meheren Variablen gespeichert werden.
Dann soll jedes Zertifikat später mit dem exportbefehl exprtiert werden!

Ist halt ziemlich kompliziert die Sache

Und eigentlich wollte ich wissen, wie er nach dem Einlesen dieser Serial Number's es unter verschiedene variablen speichert? Da es ja sein kann, dass der erste User 5 Zertifikate besitzt, die gespeichert werden müssen und der nächste dann nur eine.

Die Nummern werden ja schon herausgelesen und in einer datei abgespeichert, die dann etwa so aussieht:

AUSGABE in Computername.log:

15489987aa
dfg899er7t895ew64twet4
8789rtzz8w8741wrt44t5eff7f
Jetzt möchte ich einfach jede dieser Serial Nummern mit einer Variable versehen, damit ich es mit dem Export-Befehl verarbeiten kann.

Ich hoffe, dass jetzt ungefähr klar ist worum es geht.
Danke für eure Geduld.
Bitte warten ..
Mitglied: Biber
25.02.2010 um 11:39 Uhr
Moin ArthurNYArthur,

dieses Konzeptfragment, das du hier eben mal zusammengekloppt haben willst macht überhaupt keinen Sinn.
Aber da du keine Zeit hast, darüber nachzusinnen: hier die handwerkliche Umsetzung.

Wenn diese oben gepostete Ausgabe in einer Datei "Zertikate.txt" stünde, dann würde folgende Zeile vom CMD-Prompt aus das in Variablen "Serial1", "Serial2"...packen.
[die Zeile mit ">" am Anfang ist die Eingabe; ">" nicht mit eingeben]
>for /f "tokens=1,2,4 delims=: " %i in ('Findstr /C:"Serial Number" Zertifikate.txt^|findstr /n .') do @ECHO Set "%j%i=%k" 
Set "Serial1=DREeret34356" 
Set "Serial2=sdgtzu559e9r7uz"
In einem Batch jeweils zwei Prozentzeichen vor den Laufvariablen %i, %j...statt einem prozentzeichen am CMD-Prompt.
Und das Wort ECHO weglassen... das ist nur zur Demo da.

Mach einen Haken dran und wech damit.
Grüße
Biber
Bitte warten ..
Mitglied: ArthurNYArthur
25.02.2010 um 12:02 Uhr
Hi Biber,

danke erstmal für deine Antwort!
Aber ich weiß nicht, ob ich mich falsch ausdrücke oder so, aber irgendwie versteht ihr mein Problem nicht ganz oder ich eure Posts

Also wenn ich diesen Code ausführe:

@echo off
SETLOCAL

@SET LOG=%COMPUTERNAME%.log

FOR /F "tokens=3,*" %%i in ('certutil -store -user^|find "Serial Number:"') DO echo %%i >>%LOG%

@ECHO. >>%LOG%

ENDLOCAL

Dann speichert er mir dieses datei ab: Arthur-PC.log!
In dieser datei stehen dann von allen Zertifikaten, die ich habe die Nummern
So sieh es dann etwa aus:
15489987aa
dfg899er7t895ew64twet4
8789rtzz8w8741wrt44t5eff7f

Jetzt möchte ich jeder einzelnen nummer automatisch eine Variable zuordnen.
Wenn ich das richtig verstehe weise ich das mit:
Set "Serial1=DREeret34356"
Set "Serial2=sdgtzu559e9r7uz"

nur manuell zu, d.h. bei anderen Zertifikaten müsste iches wieder ändern, bzw. erweitern...oder verstehe ich etwas falsch?

Er soll irgendwie die nummer lesen und z.b variable i zuordnen, dann weiterlesen und nächste nummer der variable j zuordnen uns so weiter.
Oder halt au dieser Arthur-Pc.log auslesen und dann jeweils eine variable zuordnen.
Bitte warten ..
Mitglied: 60730
25.02.2010 um 12:37 Uhr
????
sondern es soll unter einer Variable bzw. wenn es mehere Nummern gibt unter meheren Variablen gespeichert werden.
..und noch zweimal mehere dazu, statt das beanstandete zu korrigieren - wer glaubt Ihr denn findet später unter diesen Worten noch eine Frage, die evtl zielführend beantwortet wurde? ;-(

01.
for /f %i in (%COMPUTERNAME%.log) do echo %i
01.
for /f %i in (%COMPUTERNAME%.log) do certutil -f -p 123456 -user -exportPFX %i C:\Zertifikat\test\test333.pfx
Risiken und Nebenwirkungen usw usf....
Bitte warten ..
Mitglied: ArthurNYArthur
25.02.2010 um 15:21 Uhr
Danke, das funktioniert! Man und ich mache es mir so kompliziert
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Java
gelöst Textdatei in Array speichern (zeilenweise) (1)

Frage von Bruchsal zum Thema Java ...

XML
gelöst XML - XSLT Formatierung mehrere verschiedene Werte (13)

Frage von chrisen zum Thema XML ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

E-Business
gelöst EService für Rechnungsversand - verschiedene Input- und Outputformate (1)

Frage von Excaliburx zum Thema E-Business ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...