2017-11-21 2 views
0

arbeite ich diese Batchdatei tst.bat genannt:Batch-Datei: Wenn Befehl nicht

@echo off 

:_main 
    set str=%1 

    call :_checkInput 
    call :_strLen %str% 

    echo %_strLen% 

exit /b 

:_checkInput 

if "%str:~0,1%" == """ set str=%str:~1%  
if "%str:~-1%" == """ set str=%str:~0,-1% 

goto :eof 

:_strLen 
    setlocal enabledelayedexpansion 
    set str=%1 

    :_loop 
     if /i "!str:~%len%,1!" neq "" set /a len+= 1 & goto :_loop 
    (endlocal & set _strLen=%len%) 
goto :eof 

aber aus irgendeinem Grund, den ich einen Fehler bin immer zu sagen: „eingestellt war zu diesem Zeitpunkt unerwartet“ als ich tst "Hello" an der Eingabeaufforderung eintippte. Der Fehler, wenn vom "IF" -Befehl im _checkInput-Teil.

Ich werde Ihre Hilfe sehr schätzen. Vielen Dank.

+0

Danke Magoo für die Bearbeitung –

+0

Warum benutzen Sie nicht einfach die Befehlsmodifikatoren, um die umgebenden Zitate zu entfernen? 'Set str =% ~ 1' – Squashman

+0

@Squashman Vor Magoos Kommentar wusste ich nicht, dass es möglich ist. :) –

Antwort

1

Wie Sie vermuten, hat das Problem mit dem zu tun "

Sie abstreifen können Räume von %1 umschließenden %~1 verwenden.

Sie können alle entfernen " mit set "var=%var:"=%"

+0

Add ja du bist richtig Magoo. Diese Zeile "var =% var:" =% "hat mein _checkInput komplett ersetzt. Danke! Ich schätze Ihre Hilfe. Prost! –

Verwandte Themen