===[ Программы / Windows ]=== #post-id: 7388-12-39 #original-date: 17.10.2020 Sat #original-time: 12:39 PM #original-day: 7388 #original-host: WinXP Home SP3 (Build 2600) Какая-то очередная смертельная битва на костылях. https://www.howtogeek.com/694949/how-to-escape-spaces-in-file-paths-on-the-windows-command-line/ Автор учит людей экзотическим методам «обхода» пробелов в именах файлов, но даёт слишком мало информации, почему что-то работает, а что-то нет. Например, важно помнить, что в Windows нет никакого «специального символа», который разделяет параметры. Командная строка передаётся процессу в виде простой строки, какая была использована при вызове CreateProcess(), а разбивка строки на параметры происходит уже силами самой программы и используемых ею библиотек. Например, можно заюзать функцию WinAPI CommandLineToArgvW(), чтобы сделать примерно то же (см. Рэймонда Чена), что делают библиотеки в Цэ. В VBScript есть объект WScript.Arguments, который красиво парсит командную строку, передаваемую WScript.EXE или CScript.EXE, ну и так далее. Именно поэтому, когда ушлые гики советуют брать в кавычки не всё имя файла, а только его часть с пробелом, может случиться конфуз, в ходе которого программа, не готовая к таким выкрутасам, скажет, что нет такого файла.