![]() |
Создание папки "Имя Фамилия" для доменного пользователя
Есть сетевая папка в которой нужно создать папку пользователя от имени пользователя. Хотелось бы сделать это на js (дабы дополнить имеющийся скрипт, а не плодить новые)
На posh у меня получилось приблизительно так: Код:
Get-ADUser $env:USERNAME | ForEach { Несущественная информация, которая мало влияет на суть задачи.
В названии темы случайно указал "Имя Фамилия", на самом деле "Фамилия Имя".
|
т.е. js практически не знаю обратился к cmd. вытащил имя и фамилию через wmi, но дальше какая-то лажа. что-то я делаю не так, и понять не могу что.
Код:
@echo off |
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]) Скрытый текст
![]() ? Вот они-то и мешаются. Самым простым способом компенсировать такое поведение является двойной разбор по for /f. Могу поискать пример, «их тут были». P.S. А почему Вы делаете два запроса, а не один: Код:
… get DS_sn, DS_givenName … |
Iska, если цеплять их одним запросом вне зависимости от очередности запроса вывод идет сначала имени, а потом фамилии. тут или брать значения с ключом /value и обрезать лишнее или двумя for, чтобы запихнуть в отдельные переменные. второй вариант мне как-то больше приглянулся.
С двойным разбором по for можно подробнее? |
Цитата:
Цитата:
Код:
@echo off |
Самое то.
получилось как-то так: Код:
@echo off |
По идее можно и зараз:
Код:
MD "\\server\Именные\%%k %%j" |
Время: 13:49. |
Время: 13:49.
© OSzone.net 2001-