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

Mit C einen Text String in einer Bat verändern...Hiilfeee!

Frage Entwicklung C und C++

Mitglied: j1rechert

j1rechert (Level 1) - Jetzt verbinden

21.10.2005, aktualisiert 24.10.2005, 5174 Aufrufe, 17 Kommentare

Hallo Leute,

ich hoffe mir ist noch zu helfen. Versuche gerade mir ein wenig Cbeizubringen und "oh Wunder"....jede Menge Probleme und Fragen

Ich möchte mittels C oder Cplusplus einen Text String in einer .bat verändern.
Einfach in der .bat die beiden Wörter suchen lassen und durch andere ersetzen.

Hab jetzt nun einige Stunden mit versuchen und suchen verbracht....ich kriegs aber nicht gebacken.

Kann mir jemand sagen wie das funktioniert??

greets
Mitglied: ketchup
21.10.2005 um 21:13 Uhr
warum gerade mit C?

Bitte warten ..
Mitglied: 13100
21.10.2005 um 22:50 Uhr
was'n dat für ne eigenartige beschreibung.
kann man die mal klar definieren?
Bitte warten ..
Mitglied: j1rechert
22.10.2005 um 12:44 Uhr
na ja, weil ich C lernen möchte
Bin aber für alle Vorschläge offen
Bitte warten ..
Mitglied: j1rechert
22.10.2005 um 12:48 Uhr
also nochmal eine genauere Beschreibung:

Ich hab ein Login script (login.bat) in der ich einen Wert verändern möchte, der bei einer Prüfung ein Popup ausgibt. Dieses Popup möchte ich unterdrücken indem ich den Wert verändere und die Veränderung möchte ich über ein anders Script herführen (am liebsten in C/C++).
Bitte warten ..
Mitglied: 13100
22.10.2005 um 13:38 Uhr
kannst du mal dein loginscript posten, zumindest
den betreffenden teil.
Bitte warten ..
Mitglied: j1rechert
22.10.2005 um 13:49 Uhr
dier der betreffende Text String:
SET FEHL=0
for /f "tokens=1,* delims=:" %%a in ('TYPE %temp%\login.log ^| find "Fehlend: "') do echo %%b >> %temp%\login.log.f& SET FEHL=1
IF NOT "%FEHL%"=="1" goto nopopup
(In dem Log wird geprüft ob eine Anwendung fehlt oder nicht zu erreichen ist und wird per Popup gemeldet.
ich möchte die Variable SET FEHL=1 verändern in SET FEHL=0 damit das Popup nicht mehr hochkommt. Da diese bat auf vielen Rechnern liegt und einige lokal nicht zu erreichen sind, möchte ich über ein Script oder eine EXE diese Veränderung remote ausführen.
Bitte warten ..
Mitglied: ketchup
22.10.2005 um 16:00 Uhr
dier der betreffende Text String:
SET FEHL=0
for /f "tokens=1,* delims=:" %%a
in ('TYPE %temp%\login.log ^| find
"Fehlend: "') do echo %%b >>
%temp%\login.log.f& SET FEHL=1
IF NOT "%FEHL%"=="1"
goto nopopup
(In dem Log wird geprüft ob eine
Anwendung fehlt oder nicht zu erreichen ist
und wird per Popup gemeldet.
ich möchte die Variable SET FEHL=1
verändern in SET FEHL=0 damit das Popup
nicht mehr hochkommt. Da diese bat auf vielen
Rechnern liegt und einige lokal nicht zu
erreichen sind, möchte ich über
ein Script oder eine EXE diese
Veränderung remote ausführen.


kopier einfach eine neue version via logon-script hin.
Bitte warten ..
Mitglied: j1rechert
22.10.2005 um 16:39 Uhr
Okay..hab nun einen anderen Weg versucht.
Nun will ich über C eine komplett neue Datei erstellen in der das ganze Script rein geschrieben wird.
Der Compiler hängt sich aber bei dem Text (fprintf (datei, "if /i "%1"=="-r" echo) an den Sonderzeichen auf. Fehler lt. invalid operands of types 'const char[7] and int to binary operator%....wie kann ich in C die Umsetzung der Sonderzeichen bewerkstelligen??
Bitte warten ..
Mitglied: 13100
22.10.2005 um 18:00 Uhr
anführungszeichen: \"
anführungszeichen innerhalb eines, in anführungszeichen
gehaltenen stings, werden selten richtig interpretiert.
bei sonderzeichen sieht es auch nich besonders rosig aus.
wäre bei einer kompletten neuschreibung, eine
batchdatei nich sinnvoller?

rem * ins entsprechende verzeichnis wechseln
cd /d c:\windows

rem
* weg mit dem alten script
del script.cmd

rem * erstellen des neuen scripts, bzw
rem
* reinklatschen der neuen zeilen
echo "zeile1 von meinem neuen script" >> script.cmd
echo "zeile2 von meinem neuen script" >> script.cmd
echo "zeile3 von meinem neuen script" >> script.cmd
Bitte warten ..
Mitglied: j1rechert
22.10.2005 um 18:16 Uhr
über die von dir genannte Möglichkeit habe ich auch nachgedacht, ist aber nicht der Sinn der Übung da ich es in C bewerkstelligen möchte.
Einfach eine .exe basteln die das ganze umsetzt, entweder eine komplett neue Datei mit dem nötigen Inhalt erstellt oder diesem SET Eintrag einen anderen Wert zuweist.
Das muss doch irgenwie zu handeln sein.
Übrigens ...Danke für deine Mühe
Bitte warten ..
Mitglied: ketchup
22.10.2005 um 20:20 Uhr
über die von dir genannte
Möglichkeit habe ich auch nachgedacht,
ist aber nicht der Sinn der Übung da
ich es in C bewerkstelligen möchte.
Einfach eine .exe basteln die das ganze
umsetzt, entweder eine komplett neue Datei
mit dem nötigen Inhalt erstellt oder
diesem SET Eintrag einen anderen Wert
zuweist.
Das muss doch irgenwie zu handeln sein.
Übrigens ...Danke für deine
Mühe

hm, also hab ich das richtig verstanden?
nur damit du dich mit C herumspielen kannst möchtest du für dein problem eine lösung über 97 umwege basteln?

wenn auf jedem client/server die gleiche datei liegt und du überall auch wieder die gleiche datei haben willst, dann erstelle dir doch diese neue datei lokal bei dir und kopiere sie dann einfach auf die jeweiligen clients.
ist 100mal einfacher und mit 1000mal weniger aufwand verbunden als ein edit-programm in C zu schreiben.
würds ja noch verstehen wenn du es in PERL oder kix32 lösen wollen würdest.
du kannst das problem aber auch einfach in batch lösen, indem du dich sed oder ähnlichem beschäftigst, die dir dann dein file editieren und nur den einen wert anpassen.

bist wohl ein admin mit zuviel zeit und zuwenig arbeit
Bitte warten ..
Mitglied: Guenni
24.10.2005 um 00:17 Uhr
über die von dir genannte
Möglichkeit habe ich auch nachgedacht,
ist aber nicht der Sinn der Übung da
ich es in C bewerkstelligen möchte.

@j1rechert

Hi,

wenn du das in C, C++, Pascal oder in was für eine Sprache auch immer
bewerkstelligen willst, eine Datei "remote" zu verändern, so wirst du ZWEI
Programme schreiben müssen.

Ein Programm läuft auf der "Remote-Maschine" als Server, also als ein
Programm, das auf Anfragen lauscht, um Dienste anzubieten.

Das zweite Programm, ist das Programm, das diese Dienste(als Client) in Anspruch nimmt.

Analog dazu nimm einfach das Beispiel Telnet. Ein Telnet-Client ist ein Programm
das auf einen anderen Computer zugreift. Was braucht man dazu?.....

.....einen Computer, der Telnet-Dienste bereitstellt.

Gruß
Günni
Bitte warten ..
Mitglied: ketchup
24.10.2005 um 08:05 Uhr
wenn du das in C, C++, Pascal oder in was
für eine Sprache auch immer
bewerkstelligen willst, eine Datei
"remote" zu verändern, so
wirst du ZWEI
Programme schreiben müssen.


hi,
da muss ich dir leider widersprechen.
es ist NICHT notwendig eine client-server-applikation zu schreiben.
auch wenn ers unbedingt in C oder sonst was schreiben möchte.
wozu gibt es UNC-Pfade bzw. Shares?

jürgen
Bitte warten ..
Mitglied: j1rechert
24.10.2005 um 12:00 Uhr
Hi,

also ich hab es hinbekommen
Hab nur noch 2 kleine Problemchen:
Bei der Ausgabe schreiben in die Datei möchte ich ein Doppel Backslash und 2 mal das % Zeichen (also \\ und %%) ausgeben lassen. Er gibt mir aber immer nur eins aus. Ich wiess daß ich einen Backslash und ein % Zeichen mit einem zusätzlichen escapen muss, aber wie kommentiere ich im Compiler daß er mir die Zeichen doppelt ausgibt (z.B.: \\server\)?
Bitte warten ..
Mitglied: ketchup
24.10.2005 um 12:11 Uhr
noch 2 backslashes dazu?!

zb \\\\ => 2 backslashes escaped
beim % das gleiche

jürgen
Bitte warten ..
Mitglied: j1rechert
24.10.2005 um 13:05 Uhr
thanks....geht einwandfrei
Bitte warten ..
Mitglied: Guenni
24.10.2005 um 22:43 Uhr
@ketchup

Hi,

das ist mir hinterher auch eingefallen, was ich da geschrieben hatte, aber da lag ich
schon im Bett, und hatte keine Lust mehr aufzustehen, um meinen "Senf" den ich
dazugegeben hab zu korrigieren.


Gruß
Günni
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

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 ...

Exchange Server
Exchange 2007 Datenbank restore ohne Exchange zu verändern - SBS2008

Frage von pitamerica zum Thema Exchange Server ...

Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat (4)

Frage von Piotrney zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...