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

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

Автор: CMD
Дата сообщения: 01.05.2009 17:50
Как в батнике определить есть ли права администратора у пользователя, запустившего этот батник?
Автор: vitaliy91
Дата сообщения: 01.05.2009 18:31
Подскажите пожалуйста в чем ошибка ?
Нужно что-бы в файл 2.txt выводился русский текст но почемуто кодовая страница не меняется и выводятся крякозябры
вот кусок кода:

Цитата:

chcp 1251 >nul
set name=Проверка
chcp 866 >nul
............
echo.
for /L %%n in (1,1,255) do (
............
call :back2
............
)
:back2
if exist *.* (
ping localhost
goto back2
)
if exist 1.txt (
del 1.txt /f /q
echo.
chcp 1251 >nul
echo "%name%" >>2.txt
chcp 866 >nul
............
pause
exit
)
Автор: smirnvlad
Дата сообщения: 01.05.2009 18:41
vitaliy91
можно сохранить батник в вин(1251) кодировке, тогда не надо конвертировать, либо если батник оставлять в ДОС(866) кодировке, то этот кусок:

Цитата:
chcp 1251 >nul
set name=Проверка
chcp 866 >nul

поменять на этот

Код:
chcp 866 >nul
set name=Проверка
Автор: 01MDM
Дата сообщения: 01.05.2009 18:50
CMD


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

set admin=no
net user %username% | findstr "Администраторы Administrators" 1>nul && set admin=yes
echo %admin%
Автор: vitaliy91
Дата сообщения: 01.05.2009 19:11
smirnvlad

А как во втором случае можно корректно вывести на экран переменную %name% ?
Автор: 01MDM
Дата сообщения: 01.05.2009 19:55
vitaliy91
Если ты сохраняешь батник в кодировке cp1251, то обозначай ее в батнике (chcp 1251 1>nul).
Если батник соxранен в cp866 ничего не надо указывать. Если ты все делаешь так, но у тебя все равно кракозябры, поменяй шрифт в консоли на "Lucida Console"
Автор: Serhiy123
Дата сообщения: 01.05.2009 20:36
Нашел несколько полезных инструментов для работы с флешками из коммандной строки:
http://www.uwe-sieber.de/drivetools_e.html
RemoveDrive V1.9 - Safe removal of drives
EjectMedia - eject a media from a drive
ReMount - change drive letters
DriveCleanup - remove nonpresent drives from the registry

Автор: vitaliy91
Дата сообщения: 01.05.2009 23:50
01MDM

Спасибо за помощь
А как можно узнать запущен ли заданный процеес или нет, знаю как проверить с помощью tasklist но с выводом в отдельный файл, затем поиск в нем, а хочется сделать без вывода в файл например сделать вывод в переменную и искать имя процесса в ней.
Или может можно еще както ?
Автор: smirnvlad
Дата сообщения: 02.05.2009 07:12
vitaliy91

Код:
for /f "tokens=*" %%a in ('tasklist') do (
echo %%a
)
Автор: Maza_Faka
Дата сообщения: 02.05.2009 07:45
vitaliy91

Цитата:
как можно узнать запущен ли заданный процеес или нет


Код:
Tasklist | Find /I "process.exe">Nul && Echo Process is exist || Echo Process not exist
Автор: wolf0425
Дата сообщения: 02.05.2009 09:29
vitaliy91
вот рабочий пример проверки и запуска только если еще не запущен

Код: tasklist | find /i "RedVex32.exe" >nul || start "" RedVex32.exe -hide -run
Автор: vitaliy91
Дата сообщения: 02.05.2009 14:15
Спасибо всем, пример wolf0425 какраз подошел

P.S.:

Цитата:

а вывести многострочный листинг в переменную - как ты это себе представляешь? склеить строки?


Имел в виду так:

Цитата:

>tasklist /fi "imagename eq explorer.exe" /fo csv /nh

"explorer.exe","1500","","0","28 020 КБ"

Автор: zhnec777
Дата сообщения: 03.05.2009 06:49
Помогите с написанием программы. Условие:

В некотором файле хранится список пользователей ПК и имя их домашних каталогов. Необходимо разработать программу, которая просматривает данный файл и в интерактивном режиме задаёт вопрос - копировать текущему пользователю (в его домашний каталог) какой-либо заданный файл (в качестве параметра) или нет. Если "да", то программа копирует файл.

Заранее ОГРОМНОЕ спасибо всем.
Автор: 01MDM
Дата сообщения: 03.05.2009 09:47
zhnec777
Формат файла произвольный? Допустим:

Код:
Comp1,User1
Comp2,User2
...
Автор: zhnec777
Дата сообщения: 03.05.2009 15:21
01MDM
ОГРОМНЕЙШЕЕ СПАСИБО ВАМ.
Автор: lorents
Дата сообщения: 03.05.2009 15:43
помогите пожалуйста, как можно запустить программу для отправки писем которая стоит по умолчанию, чтобы уже было введено куда, тема и прикрепленный файл?
Автор: basstard
Дата сообщения: 03.05.2009 19:39
lorents

task sheduler умеет:



для запуска создать ярлык:

Код: %systemroot%\system32\schtasks.exe /run /tn <имя задания>
Автор: lorents
Дата сообщения: 03.05.2009 20:04
basstard

Цитата:
task sheduler умеет:

а если его нет на компьютере?
можно ли без дополнительных программ?
Автор: basstard
Дата сообщения: 03.05.2009 20:46
lorents,

а если его нет на компьютере?
тогда это компьютер под управлением Linux…

попробуй запустить командную строку от имени Администратора и набрать

Код: %windir%\system32\taskschd.msc /s
Автор: lorents
Дата сообщения: 03.05.2009 21:00
а можно без использовании дополнительных программ, мне надо чтобы это работала на все виндах начиная с 98-ого

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

ничего не вышло,

Добавлено:
а можно готовый промер через task sheduler
Автор: basstard
Дата сообщения: 03.05.2009 21:17
lorents
ничего не вышло
да, я был не прав, только что проверил — он действительно не везде.
а что за программа? она сама может поддерживать запуск с параметрами,
в справке должно быть быть написано
Автор: lorents
Дата сообщения: 03.05.2009 21:25

Цитата:
а что за программа? она сама может поддерживать запуск с параметрами,

не совсем понял какая программа?
а можно ли сделать все тоже самое через ярлык? я просто знаю как сделать все кроме прикрепить файл?
Автор: basstard
Дата сообщения: 03.05.2009 22:19
lorents
не совсем понял какая программа?
твой почтовый клиент, может ему можно дать задание,
и запустив с параметром заставить выполнить

есть еще “blat”
он специально для этого предназначен
Автор: lorents
Дата сообщения: 03.05.2009 22:25
basstard

Цитата:
есть еще “blat” —

хорошая вешь, но сейчас не подходит, мне надо запусти почтовик, который стоит по умолчанию
Автор: basstard
Дата сообщения: 03.05.2009 23:09
lorents,
хорошая вешь, но сейчас не подходит
ты уверен? — только что его потестил, и он со всем справился!

вот простейший скрипт для отправки почты:

Код: @echo off
setlocal enabledelayedexpansion
rem ============================================================================
set message=<путь к файлу с текстом сообщения>
set toname=<адрес получателя, напр. friend@mail.ru>
set subject=<тема сообщения>
set serverSMTP=<сервер SMTP, напр. smtp.mail.ru>
set fname=<адрес отправителя, напр. user@mail.ru>
set portSMTP=<порт SMTP, по умолчанию 25>
set uname=<имя пользователя, напр. user@mail.ru>
set pword=<пароль к ящику, напр. MySuperSecretPassword>
set attach=<путь к присоединенному файлу>
rem ============================================================================
cd "%~dp0"
blat !message! -to !toname! -subject !subject! -serverSMTP !serverSMTP! -f !fname! -portSMTP !portSMTP! -u !uname! -pw !pword! -attach !attach!
exit
Автор: lorents
Дата сообщения: 04.05.2009 07:35
basstard
спасибо, сейчас разберемся
Автор: Rush
Дата сообщения: 04.05.2009 12:25
lorents
Тебе ж не надо доппрограмм.
То же самое, что делает и блат, делается скриптом (wsh)...
Автор: mike345S
Дата сообщения: 04.05.2009 13:04
lorents
blat вроде не умеет ssl...
есть что-то подобное, но с поддержкой ssl?

Rush, можно пример скрипта?
Автор: Rush
Дата сообщения: 04.05.2009 14:36
mike345S

Цитата:
можно пример скрипта?

[more=Ну что-то вроде этого (ненужное убрать)]

Код:
On error resume next
Set objcdo = CreateObject("CDO.Message")
objcdo.From = "адрес отправителя"
objcdo.To = "адрес получателя"
objcdo.BCC="копия на 1-й адрес; копия на 2-й адрес"
objcdo.Subject = "тема"
objcdo.TextBody = "текст письма" 'или HTMLBody
objcdo.AddRelatedBodyPart "маршрут картинки", "pic", 1
objcdo.AddAttachment "маршрут файла"
objcdo.AddAttachment "маршрут 2-го файла" 'и т.д.

With objcdo.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp-сервер"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0 '0 - нет, 1 - да, для NTLM - 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false 'через SSL - true
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 'секунды
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "логин"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль"
.Update
End With

objcdo.Send
if err.number then msgbox "Не удалось отправить почту"
set objcdo=nothing

Автор: mike345S
Дата сообщения: 04.05.2009 15:51
Rush, спасибо. Вечером попробую.
А в чем проблемы с надежностью?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: как сохранить сетевые настройки


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