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

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

Ответить
Настройки темы
PowerShell - Редактирование ini файлов.

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


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

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


Здравствуйте! Возникла проблемка с редактированием ini файлов с помощью Powershell.

Есть ini файлик в котором прописывается адрес сервера по которому клиентская часть общается с сервером.

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

С Powershell знаком совсем мало на уровне открыть закрыть процесс, посмотреть по сетке на каких компах он запущен.

Нашел в интернете вот такой вот примерчик

Get-Content Clients.txt | ForEach-Object {
Get-Item "\\$_\C$\Program Files\My Application\MyApp.ini" } |
Replace-FileString -Pattern 'Server=appserver1'
-Replacement 'Server=appserver2' -Overwrite

При попытке запуска Powershell выдает мне следующее: Replace-FileString" не распознано как имя командлета

Помогите пожалуйста понять почему?

Отправлено: 12:33, 11-04-2016

 

Ветеран


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

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


SahatoshL, Потому что такой команды или функции в PowerShell нет. Это либо какой-то подгружаемый сторонний модуль, либо самописная функция или скрипт.

Отправлено: 12:49, 11-04-2016 | #2



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

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


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


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

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


Цитата Foreigner:
SahatoshL, Потому что такой команды или функции в PowerShell нет. »
А почему тогда в статьях по Powershell ее активно используют? и откуда она взялась тогда здесь интересно.

Отправлено: 12:53, 11-04-2016 | #3


Ветеран


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

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


Цитата SahatoshL:
А почему тогда в статьях по Powershell ее активно используют? »
Не знаю, впервые увидел от вас.

Отправлено: 12:54, 11-04-2016 | #4


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


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

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


Цитата Foreigner:
Не знаю, впервые увидел от вас. »
а не подскажите тогда каким образом можно строчку заменить в файлике на определенных компьютепах сети?

Отправлено: 12:57, 11-04-2016 | #5


Ветеран


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

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


Цитата SahatoshL:
А почему тогда в статьях по Powershell ее активно используют? и откуда она взялась тогда здесь интересно. »
Ну, например, отсюда — Replacing Strings in Files Using PowerShell | Scripting content from Windows IT Pro:
Цитата:
Because there isn't a PowerShell cmdlet that provides this functionality, I wrote Replace-FileString.ps1.
А дальше пошло-поехало растекаться по ресурсам, например:
PowerShell/Replace-FileString.ps1 at master · kevinkemp/PowerShell · GitHub
Replace()| SS64.com
и т.д.

Благо, что там таки стараются не забывать указывать авторство/источник происхождения кода.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 11-04-2016 | #6


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


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

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


Цитата Iska:
Ну, например, отсюда — Replacing Strings in Files Using PowerShell | Scripting content from Windows IT Pro: »
да я тоже сейчас на русский сайт с такой же инфой наткнулся и понял что это не командлет. Тогда возник другой вопрос как работать со сценарием? я так понял есть отдельный файлик ps1 со сценарием и второй файлик с кодом где указан путь что и на что поменять?

Отправлено: 13:05, 11-04-2016 | #7


Ветеран


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

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


Попробуйте так:
Код: Выделить весь код
Get-Content Clients.txt | ForEach-Object {

    (get-content "\\$_\C$\Program Files\My Application\MyApp.ini") -replace 'Server=appserver1','Server=appserver2' |
     set-content  "\\$_\C$\Program Files\My Application\MyApp.ini"

}
Это сообщение посчитали полезным следующие участники:

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


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


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

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


Цитата Foreigner:
Попробуйте так:
Код:
Get-Content Clients.txt | ForEach-Object {
(get-content "\\$_\C$\Program Files\My Application\MyApp.ini") -replace 'Server=appserver1','Server=appserver2' |
set-content "\\$_\C$\Program Files\My Application\MyApp.ini"
} »
Спасибо большое! работает. коротко и ясно)

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


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


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

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


Здравствуйте! я опять по тому же вопросу) точнее продолжил эту тему ) создал формочку с кнопочками и т.д. но и решил усложнить немного то что мне показали. сделал следующим образом:

$NewIP="Server=22.22.22.22"

# вытаскиваем список компов
$adress=Get-Content C:\powrsh\comps.txt

#запускаем цикл по списку станций
for ($i=0; $i -le $adress.Length; $i++)

# меняем на i-ой раб станции ip сервера
{(get-content "\\$adress[i]\C$\AutoGRAph\Setup.ini") -replace 'Server=11.11.11.11','Server=22.22.22.22' |
set-content "\\$adress[i]\C$\AutoGRAph\Setup.ini"

#сразу же проверяем заменился ли адресс
$ipCheck=Get-Content "\\$adress[i]\C$\AutoGRAph\Setup.ini"

#Запускаем цикл по файлу setup.ini
for ($j=0; $j -le $ipCheck.Length; $j++)
{if ($ipCheck[$j] -eq $NewIP)
{"на компьютере с именем"+$adress[$i]+" адрес сервера изменен на"+$NewIP
}else
{"на компьютере с именем"+$adress[$i]+" адрес сервера не изменен"
}


}

}


Но что то он изначально начал ругаться на строчку \\$adress[i]\C$\AutoGRAph\Setup.ini. Не берет он имя компа с тхт а просто так и ищет например PCname[0]. не пойму почему) подскажите пожалуйста) ну и в основном пробегите глазами а то я первый раз начал с циклами в Powershell работать)

Отправлено: 06:59, 14-04-2016 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Инфо - Редактирование файлов/Списки файлов Windows .:[все вопросы]:. prokazzza Оформление Windows XP 2168 11-01-2021 10:27
Загрузка - Конкурс - Редактирование меню загрузки, или куда пропал boot.ini OSZone Microsoft Windows 7 16 28-12-2012 17:18
CMD/BAT - [решено] редактирование boot.ini Bint Скриптовые языки администрирования Windows 2 11-05-2010 12:04
Загрузка - [решено] Редактирование Boot.ini не помогло SkalderGM Microsoft Windows 2000/XP 9 16-07-2009 11:10
Загрузка - Редактирование boot.ini не помогло Gusac Microsoft Windows 2000/XP 4 04-09-2006 11:53




 
Переход