W partii systemu Windows chciałbym usunąć jeden lub więcej konkretnych argumentów z% *
Na przykład chcę usunąć --dev z polecenia takiego jak to:
python --dev -c "print 'hello world'"
Jak bym to zrobił?
@ECHO OFF
setlocal enabledelayedexpansion
set i=0
for %%x in (%*) do (
IF NOT %%x == --dev (
set /A i+=1
set "args[!i!]=%%~x"
)
)
:: expecting args to be -c "print 'hellow world'"
echo running: python %args%
python %args%
args[]
zmienne. Dlaczego nie zacząćset "args= "
, następnie w pierwszej pętli po prostuset "args=!args! %%~x
, bez potrzeby drugiej pętli? Łańcuch argumentu będzie miał dwa początkowe spacje, które będą ignorowane w linii harmonogramu programu.for
pętla utknęła mi w głowie. Zaktualizowałem odpowiedź za pomocą twoich sugestii. Nie użyłem%%~x
ponieważ to usuwa niezbędne cytaty z argumentów.