Я набрал эту строку в bat-файле (остановитесь, чтобы посмотреть, что было набрано)
start my_program -m y -f %s_%d_fix -z n
pause
он в конечном итоге запускает это
start my_program -m y -f d_fix -z n
как вы можете видеть, часть %s_% удалена,
я попытался выяснить, не приводит ли % к разным чтениям строк, но все в порядке. При вводе в cmd
запущенная программа получает неверные аргументы. Есть мысли по этому поводу? Спасибо.
решение1
Windows Cmd и MS-DOS Command.com используют %
для указания переменных окружения. В вашем случае %s_%
интерпретируется как расширение переменной ( s_
действующее как имя переменной) и расширяется до пустой строки.
Чтобы сохранить %
знак неизменным, используйте %%s_%%d_fix
.