Я работаю с тестами спецификации и использую specperl для команды perl в Windows.Мне нужно сделать операцию деления в команде perl, но окна всегда меняют оператор /
на \
.Таким образом, это не может быть распознано perl.
Я пробовал несколько записей, но /
превратился в \
, //
превратился в \\
, \/
превратился в \\
, конечно \\
превратился в \\
.
Вот моя команда specperl:
specperl -e "system sprintf qq{start /b /wait /node %x /affinity %x%s %s}, (int($SPECCOPYNUM/40)), (1<<($SPECCOPYNUM%4)), ('0'x($SPECCOPYNUM%40>>2)), q{ %{ENV_PIN_CMD} $command } "
Просто сфокусируйтесь на int($SPECCOPYNUM/40)
, если я использую int($SPECCOPYNUM*0.025)
, все работает нормально.Тем не менее, это 40
является переменной, поэтому я не могу использовать умножение для ее замены.
Нет ли способа сделать /
операцию деления в этой ситуации?
Любая помощь будет признательна.
Обновление
Это правда, что это не имеет ничего общего с windows-perl.Я попытался R:/ics/itools/efi2_win64/perl/bin/perl.exe -e "system sprintf qq{start /b /wait /node %x /affinity %x%s %s}, (int(1/40)), (1<<(1%4)), '', q{ ls } "
непосредственно в командной оболочке Windows, и он отлично работает.
Когда я помещаю это в файл конфигурации spec, он изменяется, /
становится \
, но я обнаружил, что опция /b /wait /node
сохраняет /
.Печальный.Я понятия не имею, что делать дальше.