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

Letzes Wort eines Strings entfernen

Mitglied: Mascaren

Mascaren (Level 1) - Jetzt verbinden

25.10.2013, aktualisiert 16:24 Uhr, 1644 Aufrufe, 5 Kommentare, 2 Danke

Hallo,

ich habe da ein Problem mit dem set Befehl und dem Umgang mit Variablen


Ausgangssitiation: ich habe einen String mit mehreren Worten (Argumenten).
Der Inhalt dieser Argumente kann bei diversen Aufrufen, auch unterschiedlich sein

Bsp -s server1 -c client2 -g gruppe -N Name1 Name1

Ich will jetzt von diesem String eben das letzte Argument, also einmal Name1, abschneiden und später ersetzen

Wie gesagt, ist das kein fester String, sondern von Aufruf zu Aufruf verschieden

Ich habe nun den gesamten String in der Variable ARGS und das letzte Argument in der Variable LASTARG
Per Längenermittlung und Co war ich bereits in der Lage zu ermitteln wieviele Zeichen ich von dem String eigentlich überbehalten will.
Dieser Wert steht in der Variable CUTLENGHT
und mein Versuch lautete

set "ARGS=%ARGS:~0,%CUTLENGHT%%"

Aber das Ergebnis ist ...
CUTLENGHT%

Häh ?

Auch weitere Versuche schlugen fehl

set "ARGS=%%ARGS:~0,%CUTLENGHT%%"
--> %ARGS:~0,133

set "ARGS=%ARGS:~0,%%CUTLENGHT%%"
--> 133

Wie muss ich denn diesen Setbefehl nun aufbauen damit er mir nur die Zeichen 0 - 133 in die Variable ARGSeinlesen kann ... wobei eben die 133 ja auch mal ne 132 oder irgendwas anderes sein kann .. eben abhängig von der länge des Ausgangsstrings "ARGS"

Ach ja und die Replace Funktion vom set, läuft beim Verwenden von Variablen zum einen auf dieselbe Formatierungsproblematik, zum anderen für nicht brauchbar, da der zu ersetzende String auf jeden Fall zweimal vorkommt, aber nur einmal ersetzt werden muss.

Verweise auf andere Scriptsprachen wie z.B.: VBS oder auch powershell u.ä. sind im übrigen nicht hilfreich.
Das Script mus auf diversen Windowskisten laufen und dabei teilweise unter UserAccounts die sowas nicht nutzen dürfen.


Wäre dankbar für Hilfe

Gruß

Mascaren



Mitglied: Mascaren
25.10.2013 um 16:28 Uhr
Hello again
In der Tat habe ich mein o.g. Problem eben auf andere Art lösen können .. was jedoch nichts an der Frage zu den Maskierungen/Formatierungen von Variablen in so einem Setcommand ändert

Wenn also irgendwer weiss wie man eine Variable maskieren muss in einem Kommando wie ...

set "ARGS=%ARGS:~0,133%"

.. wenn die 133 aus einer Variable ausgelesen werden muss, immer her mit dem Wissen



Meine Lösung lag letztlich darin das ich die Argumente schon eingangs beim Einlesen, der Reihenfolge entsprechend bearbeitete
Bitte warten ..
Mitglied: Endoro
25.10.2013, aktualisiert um 18:28 Uhr
Hi,
ein Beispiel:
01.
@ECHO OFF &SETLOCAL 
02.
set "ARGS=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" 
03.
set /a CUTLENGHT=133 
04.
call set "CUTARGS=%%ARGS:~0,%CUTLENGHT%%%" 
05.
echo %CUTARGS%
ergibt:
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
lg.
Bitte warten ..
Mitglied: bastla
25.10.2013, aktualisiert um 19:34 Uhr
...bzw alternativ mit "delayedExpansion":
01.
@ECHO OFF &SETLOCAL enabledelayedexpansion 
02.
set "ARGS=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" 
03.
set /a CUTLENGTH=133  
04.
set "CUTARGS=!ARGS:~0,%CUTLENGTH%!"
Das letzte Wort sollte sich übrigens auch so entfernen lassen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Args=Bsp -s server1 -c client2 -g gruppe -N Name1 Name1" 
03.
 
04.
for %%i in (%Args%) do set /a Anz+=1 
05.
set /a Anz-=1 
06.
for %%i in (%Args%) do ( 
07.
    if !Anz! gtr 0 set "CutArgs=!CutArgs! %%i" 
08.
    set /a Anz-=1 
09.
10.
set "CutArgs=%CutArgs:~1%" 
11.
echo %CutArgs%
Grüße
bastla
Bitte warten ..
Mitglied: Mascaren
26.10.2013 um 12:09 Uhr
hm
ich nahm in einem meiner Tests auch
set "ARGS=%%ARGS:~0,%CUTLENGHT%%%"

Kann mein Problem gewesen sein dass ich es in dieselbe Variable einlesen wollte ?

Danke auf jeden Fall
Bitte warten ..
Mitglied: bastla
26.10.2013 um 12:14 Uhr
Hallo Mascaren!
Kann mein Problem gewesen sein dass ich es in dieselbe Variable einlesen wollte ?
Eher das fehlende "call" davor ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
String zerlegen an letzem Backslash
gelöst Frage von fuguBatch & Shell4 Kommentare

Heyho ihr Supercoder ;-) Ich möchte für ein Backup-Skript eine Textdatei mit den Backup-Quellen. Die Daten einzulesen ist leicht. ...

Batch & Shell
Zeichen aus einem String entfernen
gelöst Frage von JimStarBatch & Shell3 Kommentare

Guten Tag zusammen, ich möchte folgendes tun: In einer Textdatei, steht eine Zeile. Diese beinhaltet z.B.: Diese Textzeile muss ...

Visual Studio

VBScript Zeichenfolge aus String entfernen

gelöst Frage von Leogal0010Visual Studio1 Kommentar

Hallo, Community! Ich habe da ein Problem: Ich schreibe einen kleinen "LAN-Chat" mit VBScript/VBS. D.h. auf einem Laufwerk, auf ...

Batch & Shell

Entfernen eines Strings vor einem bestimmten Zeichens in einer Textdatei

gelöst Frage von Privex007Batch & Shell3 Kommentare

Hallo an alle Coder, ich habe Probleme mit dem extrahieren eines String aus einer "txt"-Datei. Ich habe folgende Zeilen ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 6 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 18 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 21 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 21 StundenMicrosoft12 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server34 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...