Nel mio file batch su Windows XP, voglio usare %*
per espandere tutti i parametri tranne il primo. file di
prova (foo.bat):Come far funzionare SHIFT con% * nei file batch
@echo off
echo %*
shift
echo %*
chiamata:
C:\> foo a b c d e f
Actual risultato:
a b c d e f
a b c d e f
desiderata risultato:
a b c d e f
b c d e f
Come ottenere il risultato desiderato? Grazie!!
non vedo il beneficio del file temporaneo - 'set t =% *' avrebbe funzionato altrettanto bene. Questa risposta fallirà se% 1 contiene '=' o inizia con '*' o '~'. Inoltre avranno problemi se gli argomenti sono delimitati da ',' o ';' invece di spazi. Meglio rimuovere solo% 1 e lasciare il/i delimitatore/i in posizione. – dbenham
Problema Killer - questa risposta darà una risposta errata se args sono 'A A B'. Potrebbe essere migliorato con 'set t =! T: *% 1 =!' – dbenham
Usando 'set" t =! T: *% 1 =! 'Modifica, questa risposta fallirà se% 1 contiene' = ', ma sta iniziando con '*' o '~' è ok – dbenham