2017-12-09 5 views
0

ich versuche, die Zeichenfolgen zu teilen. bitte die untenstehende Form finden,bat-Befehl - Beseitigen Sie die Zeichenfolgen von rechts nach links

Szenario:

set test1=“C:A\B\C\D\X\Y\Z” 
set test2=“D:A\B\X\Y\Z” 

echo %test1% 
echo %test2% 

ich habe „\ X \ Y \ Z“ zu beseitigen, und ich brauche die verbleibende Zeichenfolge. Erwartung ist es unten wie Ausgang

echo C:A\B\C\D 
echo D:A\B 

Dank für das Lesen dieser

+0

Zuerst lesen Sie die Antwort auf [Warum wird keine Zeichenfolge mit 'Echo% var%' ausgegeben, nachdem 'set var = text' in der Befehlszeile verwendet wurde?] (Https://stackoverflow.com/a/26388460/3074564) verstehen, wie man eine Umgebungsvariable richtig definiert. Verwenden Sie nicht '' '' '' '' 'nur' '' was einen großen Unterschied macht. Führen Sie dann in einem Eingabeaufforderungsfenster 'set /?' Aus und lesen Sie die Hilfeausgabe in das Fenster auf mehreren Seiten über die String-Substitution Für die Beispiele echo% test1: \ X \ Y \ Z =% 'und' echo% test2: \ X \ Y \ Z =% 'erzeugt die gewünschte Ausgabe – Mofi

Antwort

1

Bei drucken sollten Sie nicht wollen, eine bekannte Zeichenfolge entfernen, aber wollen den Ordnernamen „drei oben“:

set "test1=C:\A\B\C\D\X\Y\Z" 
for %%a in ("%test1%\..\..\..") do echo %%~fa 
+0

Danke Stephan :) es funktioniert wirklich. Gut gemacht! – Riv

Verwandte Themen