Показать полную графическую версию : [решено] Замена текста в текстовом файле посредствам вода через диалоговое окно
Здравствуйте уважаемые старожилы!
Тут такая задача нарисовалась, если в двух словах, то необходимо получить программку, в диалоговом окне которой вводиться текст, который в последующем должен заменить собой определенное слово в текстовом файле. Т.е. стартовала программа, мы нажали кнопочку, условно "замена", ввели текст и нажали "ок", и данный текст заменил собой одно из слов в необходимом текстовом файлике.
Также есть необходимость запуска командного файла (по итогу это тот файл в котором будет произведена замена текста) через кнопку в этом же маленьком приложении". Как такую штуку можно реализовать?
megaloman
22-06-2021, 11:37
который в последующем должен заменить собой определенное слово в текстовом файле
Как определено это слово? Что такое слово, чем оно ограничено: пробелами, например. Иначе как избежать, например, при замене слова "красный" замены куска в слове прекрасный.
Понял, сейчас тогда конкретный пример на рассмотрение.
"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, я бы хотел сделать возможность запрашивать вводимые параметры заранее.
Надеюсь доступно объяснил, спасибо что откликнулись!
Даже получается проще.
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".
поменять IP на %1, а имя пользователя в bat'нике на %2. И батник запускать соответственно приблизительно так:
batnik "192.168.31.2" "TestUser"
гуглить "Позиционные параметры bat"
и ничего не надо заменять.
megaloman
22-06-2021, 14:48
Даже получается проще. Пусть у Вас есть 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
необходимо получить программку, в диалоговом окне которой вводиться текст, который в последующем должен заменить собой определенное слово в текстовом файле. Т.е. стартовала программа, мы нажали кнопочку, условно "замена", ввели текст и нажали "ок", и данный текст заменил собой одно из слов в необходимом текстовом файлике.
Также есть необходимость запуска командного файла (по итогу это тот файл в котором будет произведена замена текста) через кнопку в этом же маленьком приложении". »
Держите эту «программку»: Notepad++ (https://notepad-plus-plus.org/).
Даже получается проще.
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"
Всем спасибо господа!
Получилось както так вот:
Батник создания пользователя
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, сразу внимание не обратил на поправку, обязательно внесу, спасибо!
Парни, я тут еще навоял чутка, но чет не спешит работать, подскажите пожалуйста, где косяк?
@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
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.