Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Elven, wmic.exe осуществляет вывод в Unicode (UTF-16 LE/1200). Когда for /f осуществляет попытку разбора вывода в такой кодировке, юникодные концы строк 0x000D, 0x000A превращаются в неудобоваримый OEM-ный набор из 0x0D, 0x0D, 0x0A. Это хорошо видно по результатам перенаправления вывода в файл:
Код: Выделить весь код
>"Out.txt" (for /f "usebackq delims=" %i in (`wmic.exe UserAccount get Name`) do @echo [%i])
Видите выделенные 0x0D:
Скрытый текст

? Вот они-то и мешаются.

Самым простым способом компенсировать такое поведение является двойной разбор по for /f. Могу поискать пример, «их тут были».

P.S. А почему Вы делаете два запроса, а не один:
Код: Выделить весь код
… get DS_sn, DS_givenName …
?
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:50, 02-02-2017 | #3