Замыкающие пробелы

Замыкающие пробелы в bat / cmd файлах.

Если значение переменной должно содержать один или более замыкающих пробелов - используйте для этого следующий прием:

set "G=ABC " echo #%G%#


(Окаймляющий знак # используется тут при выводе значения для того, что бы стало видно наличие замыкающего пробела в значении переменной )
С другой стороны, если в предыдущем примере не использовать кавычек, то результат будет тот же.
Вот и возникает соблазн написать в короткой форме.
Но это - плохой стиль. Главное - отсутствие наглядности.
Человек, который будет читать ваш код, вынужден будет потратить массу времени, что бы обнаружить это. Да и вы сами через некоторое время с трудом вспомните.

Но есть еще аспект - когда этот пробел появился там не по вашему желанию.
Например, вы скопировали участок кода с сайта, или при редактировании значения остался пробел, который вы не видите.
А теперь представьте, что значение такой переменной используется (как это однажды было в моей практике) при формировании имени архивного файла или списка аргументов, передаваемых внешней программе.

Искаженное значение переменной может доставить массу хлопот. Поэтому возьмите себе за правило - перед сохранением bat файла удалять в нем замыкающие пробелы.
Например, в редакторе Notepad++ для этого есть специальная функция - Правка - Операции с пробелами - Убрать Замыкающие Пробелы.
Это сохранит вам нервы, время и пространство на диске )).

Пробелы в значениях переменных.



Если переменной необходимо присвоить значение пробела, то можно использовать тот же прием, который использовался в начале этой страницы
set "G= " echo #%G%#


С переменной, в значении которой есть один или несколько пробелов, можно работать как и обычно
Set PathOpenSSL=c:\Program Files\OpenSSL set CONF=%PathOpenSSL%\bin\openssl.cfg


В тех случаях, когда по синтаксису пробел не должен находиться в этом месте, используют окаймляющие кавычки
Set PathOpenSSL=c:\Program Files\OpenSSL "%PathOpenSSL%\bin\openssl.exe"






Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).






  TopList Rambler Top100 own counter Valid XHTML 1.0 Strict Valid CSS Rambler Top100

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2017  Бронислав Краснер