Как избавиться от промежуточных пространств в переменной окружения - PullRequest
0 голосов
/ 31 марта 2009

Как избавиться от пробелов в переменной окружения?

Предположим, у меня есть следующий фрагмент цикла for, который определяет размер свободного места на диске определенного диска.

for /f "tokens=3" %%i in ('dir ^| find "Dir(s)"') do set size=%%i

приведет к чему-то вроде этого

C:\>set size=129,028,096

Я бы хотел избавиться от разделителей следующим образом.

for /f "delims=," %%i in ('echo %size%') do set size=%%i

и привел что-то вроде этого

set size=129 028 096

Как получить его без пробелов и разделителей с помощью встроенных инструментов?

1 Ответ

1 голос
/ 31 марта 2009

Вы можете использовать

set size=%size: =%

впоследствии, который заменит все пробелы ничем.

Но вы также можете сделать это с помощью запятых:)

Но имейте в виду, что (а) разделитель меняется, для меня это точка, а не запятая. Это может зависеть от языка вашей ОС или региональных настроек. И (б) вы не сможете по-настоящему выполнить математику с этим значением, поскольку cmd ограничено 32-битной математикой со знаком (с использованием set /a).

Кстати, ваш второй оператор for не будет работать должным образом, поскольку он просто установит size в последнюю группу цифр. Это можно обойти, но я бы посоветовал использовать замену непосредственно на запятых / точках:

set size=%size:,=%
set size=%size:.=%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...