Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: king_stiven
Дата сообщения: 31.03.2011 18:55

Цитата:
Получилось вот такое безобразие.


Цитата:
Код работает. Осталось только подтесать.

Тебе шашечки или ехать?
Автор: rman86
Дата сообщения: 31.03.2011 20:24

Цитата:
Тебе шашечки или ехать?

come again. повтире еще раз, я недопонял.

Если вопросы или замечания по коду:

Код:
if "%day:~0,-1%" == "%date%" (
echo DONE!
) ELSE (
echo Not done!
)
Автор: res2001
Дата сообщения: 01.04.2011 07:53
rman86

Цитата:
Если вопросы или замечания по коду:

Нам то что, главное чтоб у тебя не было замечаний
Автор: rman86
Дата сообщения: 01.04.2011 08:09
Всем огромное спасибо за помощь!
Автор: JohnRD
Дата сообщения: 01.04.2011 12:11
добрый день/вечер

подскажите пожалуйста, какие варианты существуют узнать разрядность ОС?

for /f "tokens=*" %%i in ('ver ^| find "6.1.76"') do echo

7ка 32 и 64 отдает одно и тоже.

реквест в реестр?

спасибо
Автор: yurkesha
Дата сообщения: 01.04.2011 12:13
JohnRD
Код: @ECHO OFF
IF NOT "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
IF NOT "%PROCESSOR_ARCHITEW6432%"=="AMD64" (
SET "MY_SYSTEM=X32") ELSE (SET "MY_SYSTEM=X64"))
ECHO Разрядность запущенной системы - %MY_SYSTEM%
Автор: JohnRD
Дата сообщения: 01.04.2011 12:25
слов нет

хотел расставить клиента DameWare, а инсталяторы разные ..

спасибо

Добавлено:
поправьте если если есть замечания пожалуйста

@ECHO OFF
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.1.26"') DO GOTO XP
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.1.76"') DO ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "AMD64"&& GOTO 7_64||GOTO 7_32

GOTO :EOF

:XP
msiexec /i "%~dp0xp.MSI" /qb
GOTO :EOF

:7_32
msiexec /i "%~dp07_32.MSI" /qb
GOTO :EOF

:7_64
msiexec /i "%~dp07_64.MSI /qb
GOTO :EOF

:EOF
Автор: RSEREGAR
Дата сообщения: 01.04.2011 15:39
Как в батнике использовать psexec.exe? Что бы на удаленном компьютере запустить команду в cmd.exe.
Автор: Scaramanga
Дата сообщения: 01.04.2011 15:41
Всем привет. Задача следующая. Батник должен проверять наличие папки
"%ProgramFiles%\soft"
если такая папка существует то перейти к пункту 2, если папки нет то пункт 1, и после пункт 2.

пункт 1 к примеру: psexec -u vasja -p pupkin soft (запуск установщика программы)
пункт 2 : %username%.bat (запуск пользовательских скриптов)

заранее спасибо

Добавлено:

Цитата:
Как в батнике использовать psexec.exe? Что бы на удаленном компьютере запустить команду в cmd.exe.


Код: \\shara\psexec.exe -u user -p password cmd.exe
Автор: RSEREGAR
Дата сообщения: 01.04.2011 15:55
Psexec я пользоваться умею. Нужно через psexec.exe запустить на удаленном компьютере cmd.exe и если успешно, то запустить в этом cmd команду
Автор: res2001
Дата сообщения: 01.04.2011 16:15
RSEREGAR

Цитата:
Psexec я пользоваться умею. Нужно через psexec.exe запустить на удаленном компьютере cmd.exe и если успешно, то запустить в этом cmd команду

Указывай опцию -i - иначе все проги с пользовательским интерфейсов не запустятся.
в параметрах cmd.exe сразу указывай команды, которые надо запустить.
Автор: RSEREGAR
Дата сообщения: 01.04.2011 16:26
res2001
Как в параметры cmd прописать команду?
Автор: res2001
Дата сообщения: 01.04.2011 16:29
RSEREGAR

Цитата:
Как в параметры cmd прописать команду?

прочти
cmd.exe /?
Автор: RSEREGAR
Дата сообщения: 01.04.2011 16:43
res2001
Спасибо!!!
Автор: Scaramanga
Дата сообщения: 01.04.2011 19:48
А в моей просьбе может помочь кто?)
Автор: yurkesha
Дата сообщения: 01.04.2011 21:21
Scaramanga
Проверка существования IF EXIST...
Вообще задача простейшая - неудобно даже помогать - так что IF /? и вперед!
Автор: sL4yer
Дата сообщения: 02.04.2011 14:40
Доброе время суток!

Есть переменная в которой записана строка:
text_here:____Слово____

возможен и такой вариант:
text_here:____Слово Слово____

Нужно вырезать всё, кроме Слово. Длина слова заранее неизвестна. Где "text_here" - одно слово, где "____" - символ(ы) табуляции.

Конечный результат должен быть:
Слово
или
Слово Слово
Автор: yurkesha
Дата сообщения: 02.04.2011 15:09
sL4yer
Код: @ECHO OFF
SET "MYTEXT=text_here:    Слово Слово    "
FOR /F "TOKENS=2 EOL=; DELIMS=    :" %%a IN ("%MYTEXT%") DO ECHO "%%a"
Автор: sL4yer
Дата сообщения: 02.04.2011 17:18
yurkesha
как оказалось позже, конструкция следующая:
текст:ПробелТабуляцияСлово СловоМногоПробелов

если подставить DELIMS= :Пробел" - уберёт пробел между Слово Слово

P.S. Раз уж пошло такое извращение, конструкции с использование sed - приемлемы
Автор: yurkesha
Дата сообщения: 02.04.2011 21:39
sL4yer
Ну тогда тащи два слова по условию непустоты второго... И при этом естественно в разделители добавь пробел...
Чтото типа IF "%%j"=="" (ECHO "%%i") ELSE (ECHO "%%i %%j")
Автор: suvolod
Дата сообщения: 02.04.2011 22:13
Вопрос по интерпретатору команд cmd: В справке написано:
//---------------------------
Чтобы указать в одной строке несколько команд, следует разделить их символами && и заключить в кавычки.
//---------------------------

Пробую написать батник: cmd /k "explorer && notepad"
в итоге открывается лишь explorer... почему?

И второй вопрос: на самом деле мне через бат-ник надо решить задачу похитрее - мне батником надо из под учетки юзера, ограниченного в правах (сидящего в группе Пользователи), запустить интерпретатор команд cmd и передать ему на выполнение несколько команд одной строкой. Попробовал вот так:

SET strCommand= \"cd d:\temp && d: && regedit off.reg\"
cls
runas.exe /user:Администратор "cmd /k %strCommand%"

Короче, как-то странно все обрабатывается.. Как я понял, после ввода пароля администратора реально выполняется лишь первая часть команды (cmd /k "d:\temp - именно так, без закрывающей скобки), потом применяется regedit, причем два раза - сперва на файл off.reg, затем на закрывающую скобку \". А в конце вообще сыплются ошибки закрывающих кавычек.

На всякой случай что я хотел получить:
1. Запустить консоль из под учетки юзера с правами администратора
2. В этой новой консоли автоматом перейти в каталог "d:\temp"
3. В этом каталоге выполнить (с правами администатора) regedit off.reg
Автор: yurkesha
Дата сообщения: 02.04.2011 22:33
suvolod
Читай между строк - то есть в шапке
Одинарный & для последовательного выполнения двух команд.
Двойной && - вторая команда выполнится только если первая вернет код завершения успех(в случае запуска explorer надо будет пускать так: START explorer.exe).
Дальше - главное: для решения твоей задачи тебе все это просто не нужно... Надо просто запустить командный скрипт от имени администратора. А уже в нем сделать все что надо - притом импорт REG-файла в реестр удобнее делать с помощью reg.exe(reg import /?)
Автор: suvolod
Дата сообщения: 03.04.2011 08:42
я читал, но мне это не помогло. пробовал и &&, и &. В моем случае (cmd /k "explorer && notepad") открывается только explorer. Если поменять местами (cmd /k "notepad && explorer") - только блокнот. Код возврата в командной строке я не вижу, но раз выполняется первая команда из списка, значит успех? Впрочем, он и при одинарном '&' выполняет тоже только первую команду..

Просто запуск скрипта не пройдет, я только часть кода батника привел, есть нюансы...


Добавлено:
yurkesha, спасибо.. Еще раз перечитал твое сообщение, и вроде догнал. Ключевые слова - "код завершения успех". То есть пока окно первой команды не закроешь, остальные выполняться не будут. А я думал что под успехом понимается корректное открытие окна первой команды списка. Самое интересное, что explorer при закрытии по крестику не возвращает "успех", поэтому блокнот в моем примере вообще никогда не откроется.
Автор: JutecAlek
Дата сообщения: 03.04.2011 10:18
у меня похожий вопрос.. надо, используя runas, запустить консоль под другой учеткой, но чтобы консоль открылась в той же папке что и исходная. Т.е:

1. Пусть я нахожусь в папке "C:\Documents and Settings\vova\Рабочий стол\Новая папка"
2. Запускаю из этой папки батник с командой "runas /user:Администратор "cmd \k myproga.exe & myproga2.exe & ..."

Проблема в том, что при запуске консоли из под администратора консоль открывается в папке "C:\windows\system32\" .. сответственно о тех прогах, которые я хочу последовательно запустить (и которые лежит в той-же папке, что и батник), ничего не знает. Как побороть?
Автор: yurkesha
Дата сообщения: 03.04.2011 11:57
JutecAlek
CD /D "%~dp0" в самом начале батника...
Автор: JutecAlek
Дата сообщения: 03.04.2011 13:14
Не срабатывает...
сделал батник:

CD /D "%~dp0"
runas /user:Администратор cmd

запускаю из папки на рабочем столе юзера, ввожу пароль админа - в итоге окрывается консоль, запущенная от админа, но путь в ней по прежнему дефолтный, т.е. C:\Winodows\system32\
Автор: 5peciali5t
Дата сообщения: 03.04.2011 14:18
JutecAlek
возможно извращенски но как-то так не пробовал?

"runas /user:Администратор "cmd \k "%cd%\myproga.exe" & "%cd%\myproga2.exe" & ..."
Автор: yurkesha
Дата сообщения: 03.04.2011 14:24
JutecAlek
не тормози - в батнике который ты пытаешься запусть от имени другого пользователя поставь эту команду первой...

Добавлено:
А уже из самого батника будут выполняться все оставшиеся команды...
Автор: SuperKolobok
Дата сообщения: 03.04.2011 16:13
подскажите если возможно - как батником определить чип видеокарты nvidia или amd ??

примерно догадываюсь что надо копать реестр, видимо тут
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI
если встречается VEN_10DE то nvidia
если встречается VEN_1002 то amd

возможно это выяснить в батнике ?
Автор: 01MDM
Дата сообщения: 03.04.2011 17:11
SuperKolobok

Код:
wmic win32_videocontroller get * /value
wmic win32_videocontroller get videoprocessor

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


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