C/C++

Командная строка CMD

ffmpeg.exe -i "%1"
vs.
ffmpeg.exe -i %1

Что дает наличие кавычек?
если в переменной есть пробелы, то прочтёт только до первого пробела
к примеру "С:\Новая папка" увидит как С:\Новая
в командной строке вообще передача параметров и много чего имеет существенную корявость
ещё ffmpeg.exe вообще немного по-другому работает, помню с ней мучался
Валерий Дмитриев
Валерий Дмитриев
8 492
Лучший ответ
Айдын Айкен вот нормальный ответ, а не скопированный с chatgpt )
Андрей Орлов Я тоже сейчас застрял с ffmpeg в VirtualDub https://audiophilesoft.ru/forum/27-221-1
Кавычки в командной строке CMD используются для обозначения пути к файлу или имени файла, содержащего пробелы или другие специальные символы, которые могут быть интерпретированы как часть команды.

В данном случае, кавычки в первом примере ("%"1"") обрамляют переменную %1, которая обычно используется для передачи параметров командной строки в пакетном файле (batch file). Кавычки нужны, чтобы обозначить, что все, что находится внутри кавычек, является одним параметром.

Во втором примере (%1) кавычки не используются, поскольку здесь передается только один параметр, который не содержит пробелов или других специальных символов.

Таким образом, в обоих случаях команда ffmpeg.exe используется для обработки файла, имя которого передается в параметре %1, но использование кавычек зависит от того, содержит ли имя файла пробелы или другие специальные символы.
VS
Vefxia Svanadze
2 989
Кавычки используются в командной строке CMD для того, чтобы обозначить, что все, что находится внутри кавычек, является одним аргументом командной строки.

В случае с командой ffmpeg.exe -i "%1", использование кавычек вокруг "%1" обозначает, что это аргумент командной строки и что его содержимое может содержать пробелы. Когда CMD выполняет эту команду, она поймет, что все, что находится внутри кавычек, должно быть рассматриваемым как один аргумент.

Если бы кавычки не использовались в этой команде, и аргумент %1 содержал бы пробелы, CMD рассматривал бы его как два отдельных аргумента, что может привести к ошибкам в работе программы.

Таким образом, использование кавычек вокруг "%1" в команде ffmpeg.exe -i "%1" помогает обеспечить корректную обработку аргумента командной строки в случае, если он содержит пробелы или другие специальные символы.