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

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

Автор: Free_Soft
Дата сообщения: 18.11.2010 21:49
Так все таки как узнать язык системы из батника? вроде какая то переменная системная была... только найти не могу. А может как через реестр?

Вообще суть вот в чем: в конструкции

Код: icacls "Myfile.exe" /grant Администраторы:F
Автор: BVV63
Дата сообщения: 19.11.2010 04:17
Free_Soft

Цитата:
вроде какая то переменная системная была...

Нет.

Цитата:
А может как через реестр?

Можно. Напр., опрашивайте параметр "InstallLanguage" под ключом [HKLM\System\CurrentControlSet\Control\Nls\Language]. Но, по-моему, корректнее через WMI:

Код: For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%0 In (`WMIC OS Get OSLanguage /Value`) Do Set OSLanguage=%%0
Echo %OSLanguage%
Автор: Free_Soft
Дата сообщения: 19.11.2010 09:10
BVV63
спасибо!
тут еще проблемка со временем нарисовалась: в английской винде 11 часов до полудня wmic показвает как 23 почемуто

Код: LocalDateTime=20101118230637.093000-480
Автор: BVV63
Дата сообщения: 19.11.2010 09:29
Free_Soft
Нет, у меня тоже англоязычная Винда, всё нормально. У Вас часовой пояс правильно указан?
Автор: Free_Soft
Дата сообщения: 19.11.2010 09:40
BVV63
хм... наверно в нем дело. ставил на виртуалке и не менял его. а по умолчанию он по моему +8.. сейчас посмотрю

Добавлено:
да, дело в нем.
Автор: praidik
Дата сообщения: 19.11.2010 15:06
Всем привет.
Помогите кто...
Нужен батник который с периодичностью хотя бы в 2 часа отсылал мне на майл IP(чужой разумеется)
Автор: res2001
Дата сообщения: 19.11.2010 15:16
praidik
Для отправки почты возьми из шапки blat. В батнике ipconfig /all >ipconfig.txt и блатом ipconfig.txt посылай.
В начале батника запихивание его в шедулер на запуск через 2 часа с помощью at или schtasks.
Автор: wolf0425
Дата сообщения: 19.11.2010 15:36
praidik интервал задержки в 2 часа можно сделать и без шедулера, просто пингом, если пару мегабайт памяти на это не жалко (у запущенного из шедулера, кстати, могут случиться проблемы с доступом blat в инет).
а вот на счет того какой тебе ip нужен - локальный компа или тот что из интернета виден - пока непонятно.
про локальный тебе уже подсказали, а про интернетовский - полезнее не себе на мэйл отсылать (хотя тоже можно, примеры его получения тут были), а на каком-то халявном динамическом dns тот комп зарегистрировать и на тот комп поставить его клиента, чтоб ходить на тот комп не по присылаемому ip (зачем-то же ты его хочешь получать), а по имени типа praidik-frend.no-ip.org
Автор: praidik
Дата сообщения: 19.11.2010 15:49
На данный момент есть это...

ipconfig>C:\RECYCLER\ip.txt
blat.exe -install -server smtp.mail.ru -port 25 -f логин@mail.ru -u логин -pw пароль
blat.exe C:\RECYCLER\ip.txt -to логин@mail.ru -subject "My first email with BLAT"
(отсылает IP мне на майл)

Предпочтительно, чтобы этот батник запускался при подключении к нету...
Но если так нельзя, то лучше тогда пусть он с периодичностью в 2 часа запускается.
Допишите пожалуйста что для этого нужно...

Добавлено:
Я подумал... если делать задержку... то при перезагрузке компа батник начнёт свою работу заново... лучше пусть он включается скажем так... в 2 часа, после в 4, после в 6 и т.д.
Можно ли так сделать? подскажите...
Заранее спасибо!
Автор: bdfy
Дата сообщения: 19.11.2010 17:18
Есть вот такой вот батничек. печатает все pdf файлы в папке по порядку (акробат только надо предварительно открыть).
for %%i in (*.pdf) do start /wait C:\Progra~1\Adobe\Acroba~1.0\Reader\acrord32.exe /n/t "%%i"
кто-то когда то здесь и помог написать
вопрос а как бы сделать что-то подобное для doc/docx ? т.е распечатать по порядку все файлы в папке. просто выделить все и нажать печать идея плохая - печатает как попало ( я так и не понял в каком порядке), а надо по имени.
Автор: Free_Soft
Дата сообщения: 19.11.2010 17:25
BVV63
Возвращаясь к кодировке экспорта из реестра: на одной машине regedit /ea отрабатывает нормально (имею ввиду кириллицу), а на другой, что /ea, что /e - выходят крякозябры. то же и при REG EXPORT. в чем может быть дело?
Автор: smirnvlad
Дата сообщения: 20.11.2010 11:39
bdfy
видимо так (сам не проверял)
for %%a in (*.doc?) do winword.exe "%%a" /q /n /mFilePrintDefault /mFileExit

Free_Soft
если в regedit правильно отображается и ОСи Win 2000 и новее должно быть одинаково
может быть в реестре уже крякозябры, или в программе просмотра на том компьютере шрифт не в той кодировке
Автор: Accessor
Дата сообщения: 20.11.2010 12:02
Free_Soft
посмотреть бы образец, что у тебя за крякозябры получается при экспорте.
Автор: Free_Soft
Дата сообщения: 20.11.2010 12:31
Accessor

Код: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Registration\{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]
"ProductCode"="{90140000-0011-0000-0000-0000000FF1CE}"
"ProductName"="Microsoft Office профессиональный плюс 2010"
"ProductNameBrand"="Microsoft Office профессиональный плюс 2010"
"SuiteName"="Включено в Microsoft Office профессиональный плюс 2010"
Автор: Accessor
Дата сообщения: 20.11.2010 13:17
Free_Soft
Сорри, по этому вопросу даже не знаю что сказать.
Может, попробовать экспортнуть с помощью vbs-скрипта? И посмотреть что получится ...
Автор: Free_Soft
Дата сообщения: 20.11.2010 13:22
задал в скриптах вопрос, но тишина.... про чтение, запись, и удаление веток нашел, а про экспорт - нет. если можешь подсказать, напиши в личку плиз
Автор: bomzzz
Дата сообщения: 20.11.2010 13:29
Free_Soft
http://bomz-co.narod.ru/VBSHelp.zip
Автор: bdfy
Дата сообщения: 20.11.2010 15:10
smirnvlad
спасибо. вот так работает
for %%a in (*.doc?) do D:\Progra~1\Micros~1\Office12\WINWORD.EXE "%%a" /q /n /mFilePrintDefault /mFileExit
pause
еще бы ключик чтобы окно ворда не открывалось (т.е скрытым было)...
Автор: praidik
Дата сообщения: 20.11.2010 17:16
Подскажите пожалуйста... как из батника установить в планировщике задание? Которое в свою очередь будет включатся и запускать прогу в установленное время.
Автор: smirnvlad
Дата сообщения: 20.11.2010 17:25
praidik
Schtasks.exe /Create /? |more

например, запуск каждые 2 часа начиная с 1:35
Schtasks.exe /create /SC HOURLY /MO 2 /ST 01:35:00 /TR "программа" /RU "SYSTEM" /TN "название"
Автор: praidik
Дата сообщения: 20.11.2010 17:38
smirnvlad всё верно?
Schtasks.exe /create /SC HOURLY /MO 2 /ST 01:35:00 /TR "D:\моя прога" /RU "SYSTEM" /TN "name_program"
Спасибо!
Автор: smirnvlad
Дата сообщения: 20.11.2010 18:00
bdfy

Цитата:
еще бы ключик чтобы окно ворда не открывалось (т.е скрытым было)

такого ключика насколько я знаю нет, но вот на VBScript'e можно сделать скрытым

praidik
программа будет запускаться каждые 2 часа начиная с 1:35 от имени системы и окно её видно не будет
после выполнения команды можно посмотреть Назначенные задания
ещё можно создать задание, в планировщике, вручную и посмотреть все необходимые параметры, для его создания, в файле tasks.list.txt
Schtasks.exe /query /FO LIST /V > tasks.list.txt
Автор: Demon L
Дата сообщения: 20.11.2010 18:21
Господа – гуру помогите решить задачку:
Есть папка (C:\test) в нее падают текстовые файлики парами (123456789.tkt и 123456789.txs) и файл «C:\base.txt» в нем в столбик перечислено, что нужно искать (одно значение на одну строку).
Примерно так:
Hdbjdmk
Hgj49cdkrp0
Hsdey568dmk
123445566
итд
Требуется проверить содержимое одного файла (скажем 123456789.tkt) выяснить есть ли там что либо из «base.txt». И если есть – скопировать этот файл и его пару в папку C:\OUT а также все обработанные файлы переместить в C:\OUT_ALL
Таким образом в C:\OUT_ALL должны быть все файлы а в C:\OUT только те в которых есть значения из C:\base.txt

заранее спасибо за помощь!
Автор: bdfy
Дата сообщения: 20.11.2010 19:02
smirnvlad

Цитата:
такого ключика насколько я знаю нет, но вот на VBScript'e можно сделать скрытым

примером не поделитесь ? задачу я выше описывал - нужно распечатывать все pdf|doc|docx и т.п из папки подряд.
Автор: Free_Soft
Дата сообщения: 20.11.2010 19:21
bdfy
del
а, пардон, это про Ворд было...
Автор: smirnvlad
Дата сообщения: 20.11.2010 21:50
bdfy
насчет "и т.п" не знаю, а pdf,doc,docx так
[more=VBScript]
printall.vbs

Код: [no]
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(WshShell.CurrentDirectory)
Set files = folder.Files
Set sfiles = CreateObject("System.Collections.ArrayList")

exts = LCase("doc,docx,pdf")

For each folderIdx In files
name = folderIdx.Name
extt = Split(name, ".")
ext = LCase(extt(UBound(extt)))

if InStr(1, exts, ext) > 0 then
sfiles.add name
end if
Next

sfiles.Sort()

acrobat = """C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe"" /n /s /o /h "
WshShell.Run acrobat & ""

Set objWord = CreateObject("Word.Application")
For each name In sfiles
extt = Split(name, ".")
ext = LCase(extt(UBound(extt)))

if InStr(1, LCase("doc,docx"), ext) > 0 then
Set objDoc = objWord.Documents.Open(fso.BuildPath(folder, name))
objDoc.PrintOut()
objDoc.Close()
elseif InStr(1, LCase("pdf"), ext) > 0 then
acr = acrobat & " /t "
acr = "cmd /c "" start """" /wait " & acr & """" & fso.BuildPath(folder, name) & """" & " """
WshShell.Run acr, 7, true
end if
Next
objWord.Quit
[/no]
Автор: bomzzz
Дата сообщения: 20.11.2010 22:47
Free_Soft
http://narod.ru/disk/82605001/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0%20%D0%BD%D0%B0%20WSH%202.0.djvu.html
Автор: praidik
Дата сообщения: 21.11.2010 09:57
У меня назрел ещё 1 вопрос...
Можно ли скрыть чёрную панель которая выскакивает при запуске bat?
Я столкнулся с такой проблемой... пробывал компилировать... с "Quick Batch File Compiler" у меня полученный файл шёл как троян(Dr. Web палил)... С "Bat_To_Exe_Converter.exe" при запуска компилированного файла комп подтормаживал...
Может есть какая то утилита для решения этой проблемы?
Автор: Free_Soft
Дата сообщения: 21.11.2010 11:42
praidik
Из компиляторов лучше на сегодняшний день тот же
Цитата:
"Bat_To_Exe_Converter.exe"

Тормозит не комп, а антивирь, который его "слушает". Скрыть батник можно многими способами, напр, запустить его с помощь VBS скрипта, или использовать специальные утилиты.

Добавлено:
Это VBS-скриптик

Код: Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "%comspec% /c My.bat", 0, False
Автор: praidik
Дата сообщения: 21.11.2010 12:02
Free_Soft
Огромное спасибо, скрипт это то что нужно! (^_^)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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