Я думаю, что столкнулся с ошибкой в командном файле, потому что он был написан с окончанием строки unix. Это известная проблема с запуском командных файлов cmd.exe в Windows?
На самом деле это не «ошибка» ... так как это задумано. Новые строки Windows определяются как "\ r \ n" ... или комбинация "возврата каретки" и "новой строки" ... тогда как разновидности * nix предпочитают опускать возврат каретки. Вы всегда должны использовать "\ r \ n" в любом месте Windows, где это возможно. Все остальное может быть неправильно истолковано ... и привести к множеству неожиданных результатов.
Это кажется эта партия этикетки пропускаются, когда LF
(Окончание строки Unix) используется в .bat
файл.
Для пакетных файлов, похоже, нет разницы между окончанием строки unix и окончанием строки Windows.
goto
, call
или даже создание переменных перевода строки работает с обоими стилями.
А поскольку пакетный синтаксический анализатор удаляет символы возврата каретки сразу после фазы процентного расширения, они никогда не будут играть большой роли.
Ответ таков: вам может «повезти», и он будет работать с LF, но не рассчитывайте на это. У нас была та же проблема, что и у исходного отправителя. Наш процесс закончился бы файлами bat, которые были только LF, и (извините, не удалось найти шаблон) иногда метка была бы «не найдена», хотя явно она там была. Придется преобразовать в CR-LF или внести случайные изменения, пока он не заработает!