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, 1695 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
Outlook & Mail

EMails werden nach 3 Monaten entfern - Einstellung

Frage von staybbOutlook & Mail5 Kommentare

Hallo, ich habe bei einem Postfach das Problem, dass in Outlook alle Mails älter wie 3 Jahre verscheinden und ...

Batch & Shell

Textdatei (.txt) Wort für Wort auslesen per batch (Spaltenweise)

Frage von pdiddoBatch & Shell1 Kommentar

Hi, ich habe eine Textdatei (.txt). Diese hat mehrere Zeilen. Ich möchte diese gerne Spalte für Spalte auslesen, sodass ...

Java

Von Delphi String zu Java String

Frage von GreenDinoJava1 Kommentar

Hallo zusammen! Ich bin dabei Delphicode in Javacode zu übertragen. Frage: ist '<text>' in Delphi equivalent zu "<text>" in ...

Visual Studio

String-Vergleich optimieren

gelöst Frage von MarcoBornVisual Studio4 Kommentare

Hallo Forum, ich habe folgenden Code-Schnipsel (vereinfacht): Ich vergleiche für jeden Absatz eines Word-Textes Inhalte mit 9 Strings, die ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 2 TagenHumor (lol)7 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 3 TagenWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 4 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 5 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Cloud-Dienste
MS Sharepoint generelle Frage zur Einrichtung
Frage von ralf86Cloud-Dienste15 Kommentare

Hallo, ich will den Sharepoint als FileServer nutzen. Hier sollen mehrere Freigabeordner mit unterschiedlichen Berechtigungen erstellt werden z.B. Geschäftsführung ...

Netzwerkmanagement
Windows Domain und vlan
Frage von mustangberlinNetzwerkmanagement10 Kommentare

Guten Tag liebe Community, mein Kollege und ich haben uns an das Thema vlan und die Gruppierung/Strukturierung unseres Netzwerkes ...

Router & Routing
FritzBox und SynologyNAS VPN
Frage von ndeedyRouter & Routing8 Kommentare

Moin moin. Irgendwie habe ich entweder ein bescheuertes Setup, oder mir bereits komplett die Birne mit Versuchen durchgebraten. Bin ...

Outlook & Mail
Outlook 2016: Schrift der Ordnerspalte verkleinern
Frage von usercrashOutlook & Mail7 Kommentare

Hallo, wie/wo kann man in MS Outlook 2016 im Ordnerbereich am linken Bildrand die Schriften, die Überschriften und den ...