Удаление пробелов в переменной - PullRequest
0 голосов
/ 15 мая 2018

Проблема: При использовании подстановка строк работает только для cleandate, но не для переменной cleantime.

set backupdate=%date:~10%%date:~4,-8%%date:~7,-5%
set cleandate=%backupdate: =%

set backuptime=%time:~0,2%%time:~3,-6%%time:~6,-3%
set cleantime=%backuptime: =% 

echo %cleandate%\Test
echo %cleantime%\Test
pause

Выход:

C:\Users\Sveta\Desktop>echo 20180514\Test 
20180514\Test

C:\Users\Sveta\Desktop>echo 172317 \Test 
172317 \Test

%cleantime% по-прежнему содержит пробел между 172317 и \Test. Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

В этом нет необходимости, если вы довольны тем, что ваш код будет использоваться только на ПК, использующих те же настройки и локали, а затем просто правильно разверните переменные:

@Echo Off
Set "BackupDate=%DATE:~-4%%DATE:~-7,2%%DATE:~-10,2%"
Set "BackupTime=%TIME:~,2%%TIME:~3,2%%TIME:~6,2%"
Echo %BackupDate%\Test
Echo %BackupTime%\Test
0 голосов
/ 15 мая 2018

В конце set cleantime=%backuptime: =% стоит space. Уберите это место, и тогда вам будет хорошо.

Я нашел пробел в командной строке:

C:\Users\test\Desktop>echo %time:~0,2%%time:~3,-6%%time:~6,-3%\Test

Результат был:

164326\Test

Это привело меня к мысли, что с set cleantime может происходить что-то странное. При более внимательном рассмотрении с помощью функции Toggle Render Whitespace кода Visual Studio я смог увидеть дополнительное пространство в конце.

...