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

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

Nilf 22-06-2021 07:44 2960685

Замена текста в текстовом файле посредствам вода через диалоговое окно
 
Здравствуйте уважаемые старожилы!

Тут такая задача нарисовалась, если в двух словах, то необходимо получить программку, в диалоговом окне которой вводиться текст, который в последующем должен заменить собой определенное слово в текстовом файле. Т.е. стартовала программа, мы нажали кнопочку, условно "замена", ввели текст и нажали "ок", и данный текст заменил собой одно из слов в необходимом текстовом файлике.

Также есть необходимость запуска командного файла (по итогу это тот файл в котором будет произведена замена текста) через кнопку в этом же маленьком приложении". Как такую штуку можно реализовать?

megaloman 22-06-2021 11:37 2960688

Цитата:

который в последующем должен заменить собой определенное слово в текстовом файле
Как определено это слово? Что такое слово, чем оно ограничено: пробелами, например. Иначе как избежать, например, при замене слова "красный" замены куска в слове прекрасный.

Nilf 22-06-2021 11:51 2960689

Понял, сейчас тогда конкретный пример на рассмотрение.

"net user test /add
net localgroup Администраторы test /add
net localgroup Administrators test /add"

Вот пример CMD'шника "ADD Admin User.cmd", он просто создает юзера с именем "test", именно это имя я бы и хотел поменять на указываемое в ином скрипте.

Сама суть этого заключается в том, чтобы удаленно создать пользователя посредствам WMIC на удаленной машине.
"wmic /node:"192.168.168.168" process call create "C:\Temp\GG\ADD User Admin.cmd"" запуском вот такого скрипта.

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

Надеюсь доступно объяснил, спасибо что откликнулись!

Nilf 22-06-2021 13:02 2960696

Даже получается проще.

wmic /node:"192.168.31.2" process call create "cmd /c net user test /add"
wmic /node:"192.168.31.2" process call create "cmd /c net localgroup Администраторы test /add"

Вот тут надо будет по итогу заменить IP и имя пользователя "test".

Elven 22-06-2021 14:47 2960700

поменять IP на %1, а имя пользователя в bat'нике на %2. И батник запускать соответственно приблизительно так:
Код:

batnik "192.168.31.2" "TestUser"
гуглить "Позиционные параметры bat"
и ничего не надо заменять.

megaloman 22-06-2021 14:48 2960701

Даже получается проще. Пусть у Вас есть File.bat
Код:

@Echo Off
cls
        If "%1"=="" (Echo Start You bat-file with paramrters: %~nx0 "ip" "user" &Pause &Exit /B 2)
        If "%2"=="" (Echo Start You bat-file with paramrters: %~nx0 "ip" "user" &Pause &Exit /B 2)

        Echo wmic /node:"%~1" process call create "cmd /c net user %~2 /add"
        Echo wmic /node:"%~1" process call create "cmd /c net localgroup Администраторы %~2 /add"
pause
Exit /B 0

Тогда ничего переименовывать не надо: запустим его с параметрами, например:

File.bat 192.168.31.2 test
Для реальной работы удалите красные Echo

Iska 22-06-2021 23:11 2960723

Цитата:

Цитата Nilf
необходимо получить программку, в диалоговом окне которой вводиться текст, который в последующем должен заменить собой определенное слово в текстовом файле. Т.е. стартовала программа, мы нажали кнопочку, условно "замена", ввели текст и нажали "ок", и данный текст заменил собой одно из слов в необходимом текстовом файлике.
Также есть необходимость запуска командного файла (по итогу это тот файл в котором будет произведена замена текста) через кнопку в этом же маленьком приложении". »

Держите эту «программку»: Notepad++.

Цитата:

Цитата Nilf
Даже получается проще.
wmic /node:"192.168.31.2" process call create "cmd /c net user test /add"
wmic /node:"192.168.31.2" process call create "cmd /c net localgroup Администраторы test /add" »

Ещё проще:
Код:

wmic.exe /node:"192.168.31.2" Process call create "net.exe user test /add"
wmic.exe /node:"192.168.31.2" Process call create "net.exe localgroup Администраторы test /add"


Nilf 23-06-2021 07:15 2960734

Всем спасибо господа!

Получилось както так вот:

Батник создания пользователя

Код:

wmic /user:"%username%" /password:"%password%"/node:"%IP%" process call create "cmd /c net user %newuser% /add"
wmic /user:"%username%" /password:"%password%"/node:"%IP%" process call create "cmd /c net user %newuser% %newpass%"
wmic /user:"%username%" /password:"%password%"/node:"%IP%" process call create "cmd /c net localgroup Администраторы %newuser% /add"
wmic /user:"%username%" /password:"%password%"/node:"%IP%" process call create "cmd /c net localgroup Administrators %newuser% /add"
pause

Стартовый батник

Код:

@echo
echo Введите имя пользователя
set /p username=
echo .
 
echo Введите пароль
set /p password=
echo .
 
echo Введите адресс
set /p IP=
echo .

echo Введите имя нового пользователя
set /p newuser=
echo .

echo Введите пароль нового пользователя
set /p newpass=

 
call test.bat %username% %password% %IP% %newuser% %newpass%

Iska, сразу внимание не обратил на поправку, обязательно внесу, спасибо!

Nilf 24-06-2021 07:16 2960779

Парни, я тут еще навоял чутка, но чет не спешит работать, подскажите пожалуйста, где косяк?

Код:

@echo off

echo Введите имя пользователя
set /p username=
 
echo Введите пароль
set /p password=

echo Введите имя нового пользователя
set /p newuser=

echo Введите пароль нового пользователя
set /p newpass=

rem количество переменных (ip) считывается из файла
for /f "usebackq" %%S in (`find /c /v ""^<"ip.txt"`) do (set /a NumStr=%%S)

rem забирает в переменную ipinfile значение из файла IP.txt

:M2
if [NOT] NumStr = 0 goto M0
goto M1
:M0
for /f "skip=%NumStr% - 1" %%A IN ("IP.txt") do (set "ipinfile=%%~A"&&goto:M3)
:M3
set /a NumStr = NumStr - 1

wmic /user:"%username%" /password:"%password%"/node:"%ipinfile%" process call create "cmd /c net user %newuser% /add"
wmic /user:"%username%" /password:"%password%"/node:"%ipinfile%" process call create "cmd /c net user %newuser% %newpass%"
wmic /user:"%username%" /password:"%password%"/node:"%ipinfile%" process call create "cmd /c net localgroup Администраторы %newuser% /add"
wmic /user:"%username%" /password:"%password%"/node:"%ipinfile%" process call create "cmd /c net localgroup Administrators %newuser% /add"

goto M2
:M1
pause



Время: 23:42.

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