Каков правильный способ для правильно процитировать один аргумент командной строки? Например, у меня есть случайный текст в переменной $X
. Мне нужно, чтобы процитировать его таким образом, чтобы, если я называюCMD.exe со ссылкой на строку
system("program.exe " + $X_QUOTED);
затем argv[1]
мой program.exe должен соответствовать оригинальным неупомянут $X
себе представить, у меня есть этот program.exe:
int main(const char **argv, int){ puts(argv[1]); }
и вывод команды: "программа хххх" является:
"test |test
, что xxxx
должно буквально быть? Я попытался добавить кавычки и все эти обманки, но тогда я всегда могу добавить какой-то другой тип вывода, который нарушил бы мой подход, чтобы процитировать аргументы строки cmd.
Это вещь. Для меня это фактически печатает: 1: «Тест 2: |? Тест Может быть, потому что я использую Perl в этом случае, и он использует другой подход, чтобы разделить командную строку .. – PPS
1:» тест
2: | тест
Как, черт возьми, я могу поставить символы новой строки?! ??? – PPS
@PPS: Вы не можете. Вы можете отредактировать исходный вопрос, если вам нужно что-то добавить. – Joey