Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Создание локального пользователя с данными из csv (http://forum.oszone.net/showthread.php?t=324983)

HiFiN 18-03-2017 12:25 2720665

Создание локального пользователя с данными из csv
 
Добрый день!

Есть csv файл с столбцами: Login, Password, FullName, Comment, Группа
Нужен скрипт, который будет создавать (обновлять данные если пользователь уже есть) беря данные из csv файла.
НО дополнительно к этому, в столбце Comment будет содержаться несколько кавычек, пример: ООО "Рога и Копыта" | Менеджер "проекта"

mwz 18-03-2017 21:42 2720837

HiFiN, какой ваш вариант? По нему сможете получить подсказки и конкретные советы.

HiFiN 21-03-2017 15:01 2721730

Добрый день!
Мой вариант не подходит, так как он отличается от "надо" и сырой.
Пока под каждого пользователя создается батник:
net user %user_name% %user_passw% /add /expires:never
net user %user_name% /fullname:%full_name% /comment:%comment%
net localgroup "%localgroup%" %user_name% /add

и в %comment% несколько кавычек не понимает (

Iska 21-03-2017 16:59 2721764

Цитата:

Цитата HiFiN
и в %comment% несколько кавычек не понимает ( »

Код:

>net.exe user Iska /comment:"\"Рога и Копыта\" Ltd."
Команда выполнена успешно.


>net user Iska
Имя пользователя                      Iska
Полное имя                            Iska
Комментарий                            "Рога и Копыта" Ltd.
Комментарий пользователя


HiFiN 25-03-2017 11:22 2722795

Код:

net user "manager" /fullname:"Петр Васильев" /comment:"ООО \"Отдел \"Рога и Копыта\" | г. Санкт-Петербург | Менеджер"
"г." не является внутренней или внешней командой, исполняемой программой или пакетным файлом.


Iska 25-03-2017 12:05 2722799

HiFiN, с одного раза разве не понятно? Экранировать надо:
Код:

>net.exe user "Iska" /fullname:"Петр Васильев" /comment:"ООО \"Отдел \"Рога и Копыта\" ^| г. Санкт-Петербург ^| Менеджер"
Команда выполнена успешно.


>net.exe user "Iska"
Имя пользователя                      Iska
Полное имя                            Петр Васильев
Комментарий                            ООО "Отдел "Рога и Копыта" | г. Санкт-Петербург | Менеджер

Причём, я совершенно, категорически не советую использовать в комментарии такой символ, как «|». Потом сами же намучаетесь с обработкой.

mwz 25-03-2017 12:17 2722800

Цитата:

Цитата Iska
Экранировать надо »

HiFiN, т.е. ставить перед двойными кавычками (и вообще перед теми символами текста, которые в общем случае являются служебными) экранирующий символ \ (падающий слэш), указывающий, что следующий за ним символ является не служебным, а составной частью текста.

Ну и, как верно отметил Iska, при использовании знака вертикальной черты (pipe) нахлебаетесь проблем.

HiFiN 25-03-2017 14:37 2722824

Спасибо.
Я сразу не понял, что экранировать надо и «|».
Можете подробней описать, какие проблемы вызовет «|» в описание?

P.S. А что насчет bat, которые брал бы данные из csv?
Есть ли такая возможность?

Если нет, то можно ли заставить брать "полные" команды из excel?
Т.е. у меня в excel на одной странице будет логин, фио и описание, а на второй будет формула в нескольких строках: " ="net user """&A*&""" /fullname:"""&B*&""" /comment:"""&C*&"""" "
Можно ли заставить брать эти команды?

Iska 25-03-2017 17:39 2722870

Цитата:

Цитата HiFiN
Можете подробней описать, какие проблемы вызовет «|» в описание? »

То, что символ конвейера | будет использован по своему прямому назначению — ровно так, как это произошло в Вашем коде.

Мы же речь всё ещё ведём про:
Цитата:

Цитата HiFiN
Есть csv файл с столбцами: Login, Password, FullName, Comment, Группа
Нужен скрипт, »

Ну, так вот попробуйте средствами пакетного файла прочитать и разобрать такой гипотетический файл на токены. Вообще, любые языки без ограничения границ строковых лексем в коде и/или с поддержкой escape-последовательностей (пакетные файлы, C/C++, PowerShell и прочие) имеют достаточные проблемы при работе со строками. И в первую очередь это проявляется при работе готовыми пакетными файлами/скриптами/утилитами с текстовыми файлами.

Цитата:

Цитата HiFiN
P.S. А что насчет bat, которые брал бы данные из csv?
Есть ли такая возможность? »

Есть.

Цитата:

Цитата HiFiN
Если нет, то можно ли заставить брать "полные" команды из excel? »

Нет. С Excel могут работать только языки, поддерживающие Automation или OLE DB. На крайний случай — DDE, хотя, по-моему, этого давно уже никто не делает.


Время: 23:17.

Время: 23:17.
© OSzone.net 2001-