Mam następujący ciąg wewnątrz mój plik wsadowy Windows:Usuń pierwszy i ostatni znak z łańcucha w pliku wsadowym systemu Windows
"-String"
ciąg zawiera również cudzysłowów twoe na początku i na końcu ciąg, tak jak jest napisany powyżej.
chcę się rozebrać pierwsze i ostatnie znaki tak, że pojawia się następujący ciąg:
-String
Próbowałem to:
set currentParameter="-String"
echo %currentParameter:~1,-1%
ten wypisuje ciąg jak powinno być:
-String
Ale gdy próbuję zapisać zmieniony ciąg w ten sposób, to zawiedzie:
set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%
Nic nie zostanie wydrukowane. Co mam zrobić źle?
To naprawdę dziwne. Kiedy usunąć znaki jak to działa:
set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%
wypisze:
-String
Ale faktycznie moja partia jest nieco bardziej skomplikowana, a tam nie działa. pokażę co mam zaprogramowane:
@echo off
set string="-String","-String2"
Set count=0
For %%j in (%string%) Do Set /A count+=1
FOR /L %%H IN (1,1,%COUNT%) DO (
echo .
call :myFunc %%H
)
exit /b
:myFunc
FOR /F "tokens=%1 delims=," %%I IN ("%string%") Do (
echo String WITHOUT stripping characters: %%I
set currentParameter=%%I
set currentParameter=%currentParameter:~1,-1%
echo String WITH stripping characters: %currentParameter%
echo .
)
exit /b
:end
a wyjście jest:
.
String WITHOUT stripping characters: "-String"
String WITH stripping characters:
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: ~1,-1
.
Ale co chcę jest:
.
String WITHOUT stripping characters: "-String"
String WITH stripping characters: -String
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: -String2
.
Twoje prace próbek (zgodnie z oczekiwaniami), musi istnieć inny bug . Może próbowałeś tego wewnątrz bloku? – jeb
Otrzymuję następujący komunikat: 'ECHO ist ausgeschaltet (OFF). ~ 1, -1' – Metalhead89
Może to dlatego, że jest w funkcji? ': myFunc dla "tokeny =% 1 delims =",/F %% I IN ("% processChain1%") Do ( \t zestaw currentParameter = %% I \t zestaw currentParameter =% currentParameter: ~ 1 -1% \t echo% currentParameter% \t REM Java jar app.jar %% że ) /wyjścia FALSE – Metalhead89