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

gelöst Per Batch String abfragen und abschließend in zwei Dateien alten String durch den eingegeben erstetzen

Mitglied: JonWain

JonWain (Level 1) - Jetzt verbinden

02.06.2007, aktualisiert 04.06.2007, 11025 Aufrufe, 7 Kommentare

Batch Datei fragt Benutzer nach auszuwechselnder Zeichenkette ab und ersetzt diese dann in zwei Dateien

Hallo zusammen,

irgendwie werde ich mit den Dos Befehlen nicht richtig grün.

Ich habe zwei Dateien, in welchen ich an zwei Stellen den Platzhalter Mitarbeiter eingefügt habe. Für jeden neuen Mitarbeiter muss ich diese Dateien anpassen, also jedes mal per Editor und suchen & ersetzen den String Mitarbeiter durch Vornamen.Nachnamen ersetzen.

Um mir das in Zukunft zu erparen, schwebt mir vor, eine Batch Datei zu erstellen, mit welcher die neuen Mitarbeiter selber diese beiden Dateien ändern können.

Damit die Mitarbeiter die Dateien selber anpassen können und dieses nicht über suchen & ersetzen im Editor tun sollen, möchte ich eine Batch Datei erstellen, welche den Namen des Mitarbeiters am Bildschirm abfragt und diesen Wert dann in den Dateien erstetzt. Soweit zur Theorie, aber in der Praxis bekomme ich das überhaupt nicht mehr hin. Ich hoffe, jemand von Euch ist noch deutlich stärker in der Dos Programmierung involviert und kann mich dieser leidigen Thematik erlösen.

Vielen Dank im Voraus für Eure Mühen,

Jon, alt werdend
Mitglied: Biber
02.06.2007 um 17:20 Uhr
Moin JonWain,

nur zur Sicherheit:
Ich habe zwei Dateien, in welchen ich an zwei Stellen den Platzhalter Mitarbeiter eingefügt habe.
Diese beiden Dateien sind
  • Textdateien wie zum Beispiel .Ini- oder .config-Dateien?
  • oder gar ihrerseits wieder Batchdateien?

Im ersten Fall können die Dateien eventuell einfacher (bzw. wartbarer) komplett von der Frag-nach-Username-Batchdatei geschrieben werden.
Im zweiten Fall wäre zu prüfen, ob nicht die Dateien 2 und 3 entweder mit Parameter aufgerufen werden konnen, ob es nicht reicht, in diesen Dateien einen Platzhalter %vorname% bzw. %nachname% zu verwenden oder ob es überhaupt mehrere Dateien geben muss.

Bitte etwas mehr Input... wie sehen denn die Dateien 2 & 3 aus?

Gruss
Biber
Bitte warten ..
Mitglied: JonWain
03.06.2007 um 13:11 Uhr
Hallo Biber,

vielen Dank für Dein Nachricht. Es handelt sich um zwei Dateien im Textformat für Open-VPN (*.opvn) . Diese enthalten in Textform den Namen der einzubindenen Verschlüsselungsdateien:

---------Dateianfang------
...
cert Mitarbeiter.cert
key Mitarbeiter.key
.....
----------Dateiende--------

Dieses Mitarbeiter will ich einfach automatisiert ersetzen lassen durch eine Abfrage. Also Batch gestartet fragt nach dem Usernamen, ich gebe JonWain ein und das Batch schreibt in die Dateien

---------Dateianfang------
...
cert JonWain.cert
key JonWain.key
.....
----------Dateiende--------

Und fertig. Leider geht mein Anspruch und meine programmiertechnischen Fähigkeiten in der Wirklichkeit da total vorbei. Eventuell würde mir auch einfach eine Übersicht der möglichen Befehle einer Batchdatei mit Dokumentation helfen. So schwimme ich da doch deutlichst.

Schönen Restsonntag,
Jon
Bitte warten ..
Mitglied: miniversum
03.06.2007 um 16:11 Uhr
Wenn du in die Datei nicht Mitarbeiter sondern %username% schreibst gehts automatisch udn einfach.
Also deine Datei sieht so aus:
...
cert %username%.cert
key %username%.key
.....

Und die Batch die dann für jeden benutzer auf seinem Rechner die Neue Datei erstellt dann so:
@echo off
for /F "delims=" %%a in (Vorlage.opvn) do call:ausgabe "%%a"
goto:eof
:ausgabe
echo %~1>>%username%.opvn
goto:eof

miniversum
Bitte warten ..
Mitglied: bastla
03.06.2007 um 16:23 Uhr
Hallo JonWain!

Einfach Lösung: Alles von Dateianfang bis vor der "cert ..."-Zeile in eine Datei "Anfang.txt" (Zeilenschaltung am Ende der letzten Zeile nicht vergessen), alles nach der "key"-Zeile in eine "Ende.txt" schreiben, dann
01.
@echo off & setlocal 
02.
set "OpVNDatei=D:\Datei.opvn" 
03.
:Eingabe 
04.
set /p MName=Bitte den Mitarbeiternamen eingeben_ 
05.
if "%MName%"=="" goto :Eingabe 
06.
type D:\Anfang.txt>"%OpVNDatei%" 
07.
echo cert %MName%.cert>>"%OpVNDatei%" 
08.
echo key %MName%.key>>"%OpVNDatei%" 
09.
type D:\Ende.txt>>"%OpVNDatei%" 
10.
type "%OpVNDatei%"|more
und das gleiche Spiel für die zweite Datei.

Eine Überprüfung der Eingabe erfolgt nur im Hinblick darauf, ob sie nicht gänzlich leer ist.

Die letzte Zeile gibt den Inhalt der neu erstellten OpVNDatei zur Kontrolle auf dem Bildschirm aus und kann natürlich weggelassen werden.

Grüße
bastla

[Edit] Wenn, wie von miniversum angenommen, der in die Datei zu schreibende Mitarbeitername dem Anmeldenamen entspricht, kannst Du einfach die Eingabe weglassen und jeweils anstelle von %MName% %username% einsetzen. [/Edit]
Bitte warten ..
Mitglied: Biber
03.06.2007 um 16:33 Uhr
Moin JoinWain,

Eventuell würde mir auch einfach eine Übersicht der möglichen Befehle einer Batchdatei mit Dokumentation helfen.
Solche Fragesteller mag ich irgendwie viel lieber als die, die glauben, das hier wäre eine Art Flat-Premium-Hotline-Angebot.
So einem habe ich gerade geantwortet..*grmbbbl*

Back to Thread.

Wenn Der Sachverhalt so ist, gäbe es zwei Varianten, die ich empfehlen würde. Beide beginnen als Batch ungefähr so..
01.
::----- snipp FragDenUserNachNamen.bat 
02.
@echo off & setlocal 
03.
:nochmal 
04.
cls 
05.
Echo.  
06.
Echo Eingabe des Benutzernamens 
07.
Echo.  
08.
Set /P "UsersNachname=Bitte den NACHnamen wie im Benutzerprofil hinterlegt eingeben [Beispiel: Wain]: " 
09.
Set /P "UsersVorname=Bitte den Vornamen wie im Benutzerprofil hinterlegt eingeben [Beispiel: Jon]: " 
10.
 
11.
Echo Sie haben eingegeben: %UsersVorname%.%UsersNachName%. 
12.
Set /P "AllesInButta=Sind diese Angaben korrekt [J/N] ? ---Geben Sie X für Abbruch ein.--" 
13.
If /i [%AllesInButta%]==[J]  goto :weiter 
14.
If /i [%AllesInButta%]==[X]  goto :eof 
15.
goto :nochmal 
16.
 
17.
:weiter 
18.
REM Hier kommen die Varianten 
19.
....
Bei den Varianten kommt es darauf an, ob "viele" Zeilen zu schreiben sind in diesen Open-VPN (*.opvn)-Dateien oder eher nur ein paar.

Wenn nur ein paar, dann nach der Sprungmarke ":weiter" weiter wie folgt:
01.
... 
02.
:weiter 
03.
Echo zeile1 von dieser Datei > %usersVorname%_%usersNachname%.opvn 
04.
Echo zeile2 von dieser Datei >> %usersVorname%_%usersNachname%.opvn 
05.
Echo zeileN von dieser Datei >> %usersVorname%_%usersNachname%.opvn 
06.
Echo cert %usersVorname%.%usersNachname%.cert >>%usersVorname%_%usersNachname%.opvn 
07.
Echo key %usersVorname%.%usersNachname%.key >>%usersVorname%_%usersNachname%.opvn 
08.
Echo RestzeileX von dieser Datei >> %usersVorname%_%usersNachname%.opvn 
09.
Echo RestzeileY von dieser Datei >> %usersVorname%_%usersNachname%.opvn
Falls die Zeilenanzahl vor und nach den beiden variablen Zeilen zu gross ist, dann kannst Du auch den ersten und zweiten konstanten Teil jeweils in einer *.txt-Datei speichern und dann...
01.
... 
02.
:weiter 
03.
Copy /y \\meinServer\opvnVorlagen\Part1.txt %usersVorname%_%usersNachname%.opvn 
04.
Echo cert %usersVorname%.%usersNachname%.cert >>%usersVorname%_%usersNachname%.opvn 
05.
Echo key %usersVorname%.%usersNachname%.key >>%usersVorname%_%usersNachname%.opvn 
06.
Type \\meinServer\opvnVorlagen\Part2.txt >>%usersVorname%_%usersNachname%.opvn
Soweit die ungetesteten Skizzen.
Zu den Befehlen SET und ECHO kannst Du am CMD-Prompt mit "Set /?" und "echo /?" nachlesen.
Oder hier ein bisschen im Bereich Batch & Shell stöbern.

Grüße
Biber
[Edit] @miniversum und @bastla
Hätte ich mir denken können, dass ich hier nicht so lange rumtrödeln sollte,,,
Schönen Sonntag!
[/Edit]
Bitte warten ..
Mitglied: bastla
03.06.2007 um 16:55 Uhr
@Biber

Immerhin hast Du eine ordentliche Benutzeroberfläche (um die ich mich herumgedrückt hatte ) "ertrödelt" ...

Grüße
bastla
Bitte warten ..
Mitglied: JonWain
04.06.2007 um 14:48 Uhr
So, ich nochmal. Vielen Dank für Eure Lösungsvorschläge, habe für mich wieder eine Menge daraus gelernt.

Ich habe gerade mit dem ersten Schritt zum Lösungsansatz meine Probleme, doch lässt mich so eine Geschichte nicht ruhig schlafen, weil es doch irgendwie gehen muss! Die fertigen Codezeilen sehen dann doch immer recht einfach aus, doch bis einfach ist für mich ein langer Weg..

Bis die Tage & nochmals vielen Dank,
Jon
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Abfrage ob Daten eingegeben wurden
gelöst Frage von Floki1Batch & Shell5 Kommentare

Hallo zusammen, ich habe ein kleines Problem, das ich auch durch intensiver Internetrecherche nicht lösen konnte. Gegeben ist folgendes ...

Batch & Shell
Batch-Datei: Benutzer-Abfrage
gelöst Frage von Axel90Batch & Shell7 Kommentare

Hallo zusammen! Ich habe bei Google keine Lösung für mein Anliegen gefunden: Ich möchte in einer Batch-Datei (Login-Sequenz) eine ...

Batch & Shell
Batch vergleich von zwei dateien
gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Batch & Shell

Problem mit "username" abfrage in Batch Dateien

gelöst Frage von KriAITBatch & Shell5 Kommentare

Hallo, ich habe eine Batch-Datei erstellt in der ein Ordner auf dem Desktop erstellt werden soll. Der Batch soll ...

Neue Wissensbeiträge
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 2 StundenMicrosoft2 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 20 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server30 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless25 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...