Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: DmitriyVassilyev
Дата сообщения: 16.04.2009 15:55
Дано простой батник который добавляет задачу в шедулире.
как запустить данный батник на юзерских компах (300 штук) при помощи другого батника, но только один раз!
Автор: guru431
Дата сообщения: 16.04.2009 16:03

Цитата:
@echo off
setlocal
wmic useraccount where status="OK" get Name /value 1>users.txt
for /f "tokens=2* delims==" %%i in ('type users.txt') do call:set "%%i"
del users.txt
set user_
goto:eof
:set
set /a cnt+=1
set "user_%cnt%=%~1"

это очень сложно и не работает. если комп в домене, он тянет из него всех пользователей. А мне надо только локальных.

Цитата:
@echo off
setlocal enabledelayedexpansion
SET i=1
for /d %%a in ("C:\Documents and Settings\*") do (dir /b /a:h "%%a\Recent\Desktop.ini" 2>nul 1>&2 && SET "User!i!=%%~nxa" && SET /A i+=1)
echo %User1%
echo %User2%
echo %User3%

А этот выводит только последнего пользователя под переменной %User2% .
В моем варианте было тоже самое, только под переменой %User1%.
Полный доступ к профилям пользователей есть.
Если просматривать ход выполнения, то пользователи находятся все, но переменная присваивается только последнему.


Добавлено:

Цитата:
если комп в домене, он тянет из него всех пользователей

Теперь знаю сколько пользователей в домене - 5768 учеток
Автор: Ni9999
Дата сообщения: 16.04.2009 17:04
мне по сообщению
Цитата:
Есть одна интересная задачка из разряда "сделать поудобнее".
Существует текстовый файлик (main.txt)в котором хранится общая часть, и существуют файлики (jab.cmd), в начале которого должна быть эта общая часть, и затем идет разнящаяся.
Так вот батничек должен каким-то образом вставлять в себя эту общую часть, и затем исполниться как буд-то эта общая часть изначально была в этом батнике.
Общая часть и сам батник хранится на шаре. Кодировка везде 1251.
Приемлемы все способы и заклинания

никто не поможет?
Автор: Maza_Faka
Дата сообщения: 16.04.2009 17:24
DmitriyVassilyev

Цитата:
как запустить данный батник на юзерских компах


Код:
SCHTASKS /?
Автор: 01MDM
Дата сообщения: 16.04.2009 19:45
guru431

Цитата:
это очень сложно и не работает

Только для локальных пользователей:

Код:
wmic useraccount where (localaccount="true" AND status="OK") get Name /value 1>users.txt
Автор: TruLander100
Дата сообщения: 16.04.2009 21:50
Прошу помощи в написании батника
Нужно распаковать архив 7z с CD на компьютер в директорию прописанную в файле c:\windos\dkdir.txt но в случае отсутствия этого файла, обратился к другому например C:\dkdir.txt, а в отсутствии и этого файла вывести текст "бла-бла переустановите игру))", содержание этих файлов одинаково [C:\games\kd] ну соответственно файл может иметь другое содержание главное заключено в [].

команда для распаковки файлов
7z.exe e filename.zip -o"Искомая директория"
собсно суть вопроса заключается с считывания директории из файла.
главное что этот батник должен запускаться на windows начиная с 98 - если это возможно
Автор: Xma111
Дата сообщения: 16.04.2009 22:48
Доброго времени суток.

Помогите, плиз.
Возможно ли батником сделать такую вещь:

Есть файл например db.cfg а его содержимое
"
qqq1
qqq2
qqq3
"

Как прочитать строки в этом файле и работать с ними в дальнейшем, например

Copy e:\qqq1\*.*
Copy e:\qqq2\*.*
Copy e:\qqq3\*.*

Просто содержимое *.cfg бывает разным, каждый раз прописывать - тяжко.

=====
Заранее благодарю.
Автор: TruLander100
Дата сообщения: 16.04.2009 23:29
пп
Автор: DmitriyVassilyev
Дата сообщения: 17.04.2009 07:38
if exist "%APPDATA%\Domain\rem.txt" goto skipp
at 17:50 /interactive /every:M,T,W,Th,F,S,Su "\\задание"
MD "%APPDATA%\Domain"
echo veryimportantfiledhskdfjkdhfks > "%APPDATA%\Domain\rem.txt"
:skipp

поборол таким образом
Автор: artemk
Дата сообщения: 17.04.2009 09:07
прошу прощения.
не смог найти, как запустить батник от имени др пользователя, без запроса пароля этого пользователя?
чтоб пользователь только запустил сценарий, а там уже запускался батник от имени другого пользователя, без предложения ввести пароль
Автор: Maza_Faka
Дата сообщения: 17.04.2009 12:20
TruLander100

Цитата:
Прошу помощи в написании батника

Рабочий пример для WinXP, Win98 под рукой нет:

Код:
@Echo Off

If Exist c:\windows\dkdir.txt (
Call :_Parsing c:\windows\dkdir.txt
GoTo :EOF
)

If Exist C:\dkdir.txt (
Call :_Parsing C:\dkdir.txt & GoTo :EOF
GoTo :EOF
)

Echo "бла-бла переустановите игру))"
Pause
GoTo :EOF

:_Parsing
For /F "Tokens=*" %%A In (%1) Do 7z.exe e filename.zip -o"%%A"
Автор: guru431
Дата сообщения: 17.04.2009 12:25

Цитата:
Только для локальных пользователей:
Код:
wmic useraccount where (localaccount="true" AND status="OK") get Name /value 1>users.txt

Тоже не работает - показывается только первый пользователь.
Вод ход процесса:

Цитата:
D:\>wmic useraccount where (localaccount="true" AND status="OK") get Name /value 1>users.txt
D:\>for /F "tokens=2* delims==" %i in ('type users.txt') do call:set "%i"
D:\>call:set "ASPNET"
D:\>set /a cnt+=1
D:\>set "user_1=ASPNET"

И остается файл users.txt с таким содержанием:

Цитата:
Name=ASPNET


Name=IUSR_COMP


Name=IWAM_COMP


Name=admin


Name=user
Автор: TruLander100
Дата сообщения: 17.04.2009 12:48
Maza_Faka
Спасибо работает, только вот считывает он с этого файла строчку вместе с кавычками[],
сделал 2 строчку в этом файле без кавычек он ее прочел и распаковал. Можно какнибудь сделать чтоб он читал или только 2 строчку, или первую но без кавычек[]?
Еще вопрос можноли использовать cmd.exe от другой винды? будет он работать?
Автор: Maza_Faka
Дата сообщения: 17.04.2009 13:08
TruLander100

Цитата:
только вот считывает он с этого файла строчку вместе с кавычками

Пример файла в студию.


Цитата:
можноли использовать cmd.exe от другой винды?

От какой и куда?
Автор: TruLander100
Дата сообщения: 17.04.2009 13:14
1 пример файла [c:\555555\]
2 пример файла [c:\555555\]
c:\5555555\

cmd например от xp использовать на win98

кста батник проверил на 98 не работает
наверно он не понимает команд :for
пишет:
имя команды или файла указано не верно
имя команды или файла указано не верно
метка не найдена (наверно про Goto EOF)

Добавлено:
Пробовал подставлять файл в windows\ и в корень
в 1 случае пишет 1 раз имя команды или файла указано не верно
в другом случае пишет 2раза имя команды или файла указано не верно
имя команды или файла указано не верно
Автор: 01MDM
Дата сообщения: 17.04.2009 14:21
guru431

Цитата:
Тоже не работает - показывается только первый пользователь.


Очень странно, что у тебя не работает. В коде ошибок нет.
Строка

Код:
set user_
Автор: Xma111
Дата сообщения: 17.04.2009 14:57

Цитата:
Maza_Faka




Цитата:
Попробуйте так:

Код:
@Echo Off

For /F %%A In (db.cfg) Do Copy e:\%%A\*.*


Благодарю. Попробую.
Автор: Maza_Faka
Дата сообщения: 17.04.2009 15:08
TruLander100

Цитата:
cmd например от xp использовать на win98

Нет, нельзя.
Автор: 01MDM
Дата сообщения: 17.04.2009 15:13
guru431

Еще вариант, через реестр:

Код:
@echo off
setlocal

set regpath="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

for /f "tokens=*" %%i in ('reg query %regpath% ^| findstr "S-1-5-2[0-9]-.*"') do (
for /f "tokens=*" %%i in ('reg query "%%i"^| findstr "ProfileImagePath"') do call:set "%%i"
)

set user_
goto:eof

:set
set /a tok+=1
for /f "tokens=%tok% delims=\" %%i in (%1) do if not "%%i"=="" goto:set
set /a tok-=1
set /a cnt+=1
for /f "tokens=%tok%* delims=\" %%i in (%1) do set user_%cnt%=%%i %%j
set "tok="
Автор: Xma111
Дата сообщения: 17.04.2009 16:27

Цитата:

Цитата:Maza_Faka




Цитата:Попробуйте так:

Код:
@Echo Off

For /F %%A In (db.cfg) Do Copy e:\%%A\*.*



Благодарю. Попробую.


Работает =))) Пасиба.
А еще нюанс один, как в батнике прописать такую вещь:

На пхп выглядит так
if($x==bibi)
{
Copy e:\bibi_old\*.*
}

Где $x = тому, что прочитал из файла "%%A".

Сорри за не четкую мысль, надеюсь хоть немного понятно мою билиберду))))
Автор: XXXXL
Дата сообщения: 17.04.2009 19:29
Здравствуйте!
Ребята, помогите, тут загвостка с символом ":", его нужно как-то автоматически удвоить.
В файле одна строка, путь к папке, в ней нужно удвоить символ ":", что бы отдать на обработку gsar`у
Спасибо.

Автор: 01MDM
Дата сообщения: 17.04.2009 22:29
XXXXL


Код:
@echo off

set oldstring=C:\Folder
set newstring=D:\Folder

gsar -s%oldstring::=::% -r%newstring::=::% -o some.txt
Автор: XXXXL
Дата сообщения: 17.04.2009 23:53
01MDM, огромное Вам спасибо!!!
Автор: Maza_Faka
Дата сообщения: 18.04.2009 07:04
Xma111

Цитата:
прописать такую вещь


Код:
For /F %%A In (db.cfg) Do If /I "%%A"=="bibi" Copy e:\%%A\*.*
Автор: vitrzn
Дата сообщения: 18.04.2009 15:47
Подскажите как можно удалить папку со всем содержимым ?

сейчас она находится здесь
C:\Documents and Settings\lik\My Documents\ConsUpdate\TempFiles\

а у другого юзера может быть другой путь, но точно в "Мои документы"

и возможно-ли присвоить аттрибуты "скрытый" к папке ConsUpdate ?

всё это надо сделать через батник !
Автор: Xma111
Дата сообщения: 18.04.2009 17:38

Цитата:
Maza_Faka


Код:
For /F %%A In (db.cfg) Do If /I "%%A"=="bibi" Copy e:\%%A\*.*


Спасибо большое. А в одну строку можно писать несколько условий if ?
Автор: NEITRYNO
Дата сообщения: 18.04.2009 20:09
Создал файл off.cmd в него прописал C:\Documents and Settings\ОЛЯ>netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0

Запускаю, на мгновенье вылетает окошко черное (как у командной строки), но фишка не срабатывает.
Если запустить Командную строку и там прописать netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0 то все работает.

Что нуно прописать чтоб cmd.exe запускалси, выполнил команду, и закрылси ???
Автор: 01MDM
Дата сообщения: 18.04.2009 20:45
NEITRYNO


Код:
@echo off
chcp 1251 1>nul

netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0
Автор: TifonT
Дата сообщения: 18.04.2009 23:54
Если кто может помогите в данной ситуации.
Есть ПК под Windows XP
Надо как-то через сеть узнавать свободное место на расшаренном диске. По аналогии как это делает винда если подключить этот диск как сетевой.
Если такое сделать очень сложно, то хотя бы чтобы эта информация записывалась в файл на том же компьютере.
Автор: Maza_Faka
Дата сообщения: 19.04.2009 07:18
vitrzn

Цитата:
удалить папку со всем содержимым


Код:
RD /S /Q "%USERPROFILE%\My Documents\ConsUpdate\TempFiles"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.