W moim pliku wsadowym w systemie Windows XP chcę użyć %*
, aby rozwinąć wszystkie parametry oprócz pierwszego. Plik
test (foo.bat):Jak sprawić, aby SHIFT działał z% * w plikach wsadowych
@echo off
echo %*
shift
echo %*
Call:
C:\> foo a b c d e f
Rzeczywista wynik:
a b c d e f
a b c d e f
Pożądany wynik:
a b c d e f
b c d e f
Jak mogę osiągnąć pożądany rezultat? Dzięki!!
nie widzę korzyści z pliku tymczasowego - zbiór T = '*'% będzie działać tak samo dobrze. Ta odpowiedź nie powiedzie się, jeśli% 1 zawiera '=' lub zaczyna się od '*' lub '~'. Również będą miały problemy, jeśli argumenty są rozdzielane za pomocą ',' lub ';' zamiast spacji. Lepiej usunąć tylko% 1 i pozostawić ograniczniki w miejscu. – dbenham
Problem z zabójcą - ta odpowiedź da błędną odpowiedź, jeśli argumenty są "A A B". Można poprawić za pomocą 'set t =! T: *% 1 =!' – dbenham
Użycie 'set" t =! T: *% 1 =! 'Modyfikacja, ta odpowiedź nadal się nie powiedzie, jeśli% 1 zawiera' = ', ale zaczyna z '*' lub '~' jest ok. – dbenham