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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CMD не могу осилить многофункциональный скрипт.

Ответить
Настройки темы
CMD/BAT - CMD не могу осилить многофункциональный скрипт.

Новый участник


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

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


Изменения
Автор: POSTREALITY
Дата: 01-11-2016
Товарищи, здравствуйте.
Подскажите пожалуйста, что в скрипте не так?
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
set "LogPath=C:\LOGS\"
set "TMP=C:\LOGS\"
if not exist %LogPath% md %LogPath%
(
for /f "tokens=*" %%a in ('dir /b/s/a-d c:\users\%UserName%\prefs5.js') do Set $Path=%%a
for /f "delims=" %%a in ('dir /b/s/a-d c:\users\%UserName%\prefs5.js') do echo %%a
)>%LogPath%\%UserName%.log
echo %$Path%
Set infile=%$Patch%
Set find="user_pref("network.cookie.prefsMigrated",*"
Set replace="user_pref("network.cookie.prefsMigrated", true);"
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
echo !TMPR!>>%TMP%\TMP.TXT
)
move %TMP%\TMP.TXT %infile%

pause
Смысл скрипта следующий:
1) Ищем на машине файл prefs5.js
2) Путь к файлу записываем в переменную $Path
3) Ищем в файле строку "user_pref("network.cookie.prefsMigrated",*" и заменяем её строкой "user_pref("network.cookie.prefsMigrated", true);"

Подскажите пожалуйста, что не правильно делаю?

Отправлено: 15:43, 01-11-2016

 

Ветеран


Contributor


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

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


Опишите, что Вы хотели получить. Тогда можно будет говорить о «так» или «не так».

Отправлено: 17:46, 01-11-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


Цитата Iska:
Опишите, что Вы хотели получить. Тогда можно будет говорить о «так» или «не так». »
Смысл скрипта такой:
У меня есть несколько терминальных серверов, на каждом сервере по 25-30 пользователей. Теперь, хочу их всех завернуть через проксю. С IE и Хромом справился при помощи групповых политик, а с FireFox не получается, так как он настройки прокси тянет не с системных настроек, а из своего файла prefs.js (в коде указан prefs5.js, так как не экспериментирую на боевом файле а создал тестовый).
В этом файле prefs.js каждая настройка выведена в отдельную строку, итого мне надо поменять 18 строк, всего в файле их более 50. Строки сами по себе не статичны по вертикали, по этому по числовому значению (положению) строки вылавливать не получится, только по конкретному тексту в строке.
Данный CMD`шник хочу положить в общую автозагрузку, чтобы пользователь, при логине, автоматически получал правильные настройки для FF.

Алгоритм скрипта такой:
1) Ищем на машине файл prefs.js. Он обычно размещается по пути C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\giajzzyj.default\prefs.js, но имя каталога giajzzyj.default не постоянное, по этому скрипту надо обязательно файл именно искать. Указать сразу конкретный путь к файлу не получится, потому что у одного пользователя каталог называется giajzzyj.default, а у другого lsnrbgfyt.default.
2) После того как обнаруживаем файл, путь к файлу записываем в переменную $Path и в файл %UserName%.log (это я для себя, по первому времени вести такой небольшой лог и отслеживать как отрабатывает скрипт).
3) Ищем в файле строку "user_pref("network.cookie.prefsMigrated",*" и заменяем её строкой "user_pref("network.cookie.prefsMigrated", true);" . Дело в том, что в первоначальном файле значения не правильные, по этому в set find в конце строки указываю *, чтобы скрипт понимал что удалять надо до конца строки а не до запятой как в конкретном примере. Всего в файле надо заменить 18 строк.

Спасибо большое!

Отправлено: 18:28, 01-11-2016 | #3


Ветеран


Contributor


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

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


Будет ли у Вас в каких-либо значениях user_pref кириллица?

Цитата POSTREALITY:
Указать сразу конкретный путь к файлу не получится, потому что у одного пользователя каталог называется giajzzyj.default, а у другого lsnrbgfyt.default. »
Пути к профилям, в том числе и к профилю по умолчанию (который может быть отличен от *.default), хранятся в файле %AppData%\Mozilla\Firefox\profiles.ini.

Отправлено: 09:17, 02-11-2016 | #4


Новый участник


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

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


Цитата Iska:
Будет ли у Вас в каких-либо значениях user_pref кириллица? »
Нет, только значения true и false, и ip адреса, вот все значения которые буду править, точнее это уже правильные значения которые буду подставлять в изначальный файл:
Код: Выделить весь код
user_pref("network.cookie.prefsMigrated", true);
user_pref("network.predictor.cleaned-up", true);
user_pref("network.proxy.backup.ftp", "10.0.2.5");
user_pref("network.proxy.backup.ftp_port", 3128);
user_pref("network.proxy.backup.socks", "10.0.2.5");
user_pref("network.proxy.backup.socks_port", 3128);
user_pref("network.proxy.backup.ssl", "10.0.2.5");
user_pref("network.proxy.backup.ssl_port", 3128);
user_pref("network.proxy.ftp", "10.0.2.5");
user_pref("network.proxy.ftp_port", 3128);
user_pref("network.proxy.http", "10.0.2.5");
user_pref("network.proxy.http_port", 3128);
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "10.0.2.5");
user_pref("network.proxy.socks_port", 3128);
user_pref("network.proxy.ssl", "10.0.2.5");
user_pref("network.proxy.ssl_port", 3128);
user_pref("network.proxy.type", 1);
Цитата Iska:
Пути к профилям, в том числе и к профилю по умолчанию (который может быть отличен от *.default), хранятся в файле %AppData%\Mozilla\Firefox\profiles.ini »
Да, но мне править файл profiles.ini не надо, надо править файл prefs.js, а в profiles.ini он не указан.

Спасибо!

Последний раз редактировалось POSTREALITY, 02-11-2016 в 11:56.


Отправлено: 11:46, 02-11-2016 | #5


Ветеран


Contributor


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

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


Цитата POSTREALITY:
Нет, »
Ясно.

Цитата POSTREALITY:
Да, но мне править файл profiles.ini не надо, надо править файл prefs.js, а в proiles.ini он не указан. »
Там перечислены профили и пути к ним. Именно там будут находиться файлы prefs.js.

Отправлено: 11:59, 02-11-2016 | #6


Новый участник


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

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


Цитата Iska:
Там перечислены профили и пути к ним. Именно там будут находиться файлы prefs.js. »
А, я понял к чему Вы это говорите. Да, правильно, но с этим моментом я уже разобрался. Верхняя часть скрипта, а именно:
Код: Выделить весь код
set "LogPath=C:\LOGS\"
if not exist %LogPath% md %LogPath%
(
for /f "tokens=*" %%a in ('dir /b/s/a-d c:\users\%UserName%\prefs5.js') do Set $Path=%%a
for /f "delims=" %%a in ('dir /b/s/a-d c:\users\%UserName%\prefs5.js') do echo %%a
)>%LogPath%\%UserName%.log
Тут я вылавливаю на машине файл prefs.js и записываю путь к нему в файл %UserName%.log и в переменную $Path.

Отправлено: 12:17, 02-11-2016 | #7


Ветеран


Contributor


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

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


POSTREALITY, профиль может быть в любом доступном месте, не только внутри %UserProfile%.

Отправлено: 13:06, 02-11-2016 | #8


Новый участник


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

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


Цитата Iska:
профиль может быть в любом доступном месте, не только внутри %UserProfile%. »
Конкретно в моём случае, файл prefs.js всегда лежит по пути C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\%%%%%.default\prefs.js

Отправлено: 13:35, 02-11-2016 | #9


Новый участник


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

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


Up

Отправлено: 12:41, 07-11-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CMD не могу осилить многофункциональный скрипт.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - не срабатывает скрипт из cmd alvibol Скриптовые языки администрирования Windows 3 09-12-2015 17:56
CMD/BAT - Не работает CMD-скрипт для сортировки файлов. Drake69 Скриптовые языки администрирования Windows 0 29-10-2012 18:15
CMD/BAT - [решено] написать скрипт cmd используя cmd оператор for Den Скриптовые языки администрирования Windows 6 29-03-2012 09:48
CMD/BAT - [решено] Не могу прокручивать CMD JustFailer Скриптовые языки администрирования Windows 5 21-03-2012 18:34
7 / 2008 R2 - Не работает скрипт .cmd при установке винды NWserverNW Автоматическая установка Windows 10 / 8 / 7 / Vista 3 04-08-2011 14:52




 
Переход