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

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

Автор: d per
Дата сообщения: 21.03.2008 23:57
Подскажите еще пожалуйста, а можно сделать скрипт, который бы поднимал на передний план заданное окно?



Извините за глупый вопрос про крон- случайно скачал lite версию... поэтому и не нашел сразу про логин от имени.
Автор: Elroir
Дата сообщения: 22.03.2008 00:05
d per
Я думаю можно - с помощью спец. утилит. Посмотри утилиту cmdow (ссылка есть в шапке) - она умеет активировать окна.
Автор: Adramelek
Дата сообщения: 22.03.2008 05:08
slide1
nnCron позволяет сделать вообще ВСЁ ЧТО УГОДНО, ты хоть в исходники загляни, это же Forth. Иными словами, скачивая его, ты получаешь одновременно интерпретатор и компилятор ЯВУ, не уступающего по возможностям любому иному, однако специально адаптированный для определённых задач, -- как раз тех, что нам и нужны. Это не Sheduler, возможности тут буквально безграничны, а потеря памяти, -- считанные килобайты, там же байт-код. Ну пусть даже сто килобайт, -- мы, вроде как, все не на 386-ых сидим тут, время этих объёмов давно прошло.
Автор: Takuja
Дата сообщения: 22.03.2008 14:02
Парни, как определить размер папки? ваще блин, майкрософт афигели...

вообщем дайте ссылку, я думаю что этот вопрос уже подним ался тут, но я чего то не нашол, 4 часа потратил.
Нада просто список
dir d:
но что бы был еще и размер папок.
Автор: igor_andreev
Дата сообщения: 22.03.2008 16:27
Takuja

Код:
chcp 1251
du -v -q d:\
Автор: 01MDM
Дата сообщения: 22.03.2008 16:31
Takuja
du.exe


Код:
du -q -l 1 d:\
Автор: igor_andreev
Дата сообщения: 22.03.2008 18:12
Вот еще, показывает и файлы и папки и их размер сразу
http://gammon.com.au/utilities/treeinfo.htm
Автор: XXXXL
Дата сообщения: 22.03.2008 18:40
Ребята, есть у кого нибудь соображения, как можно снять в указанном месте экрана скриншот, через командную строку.
Зарание благодарен.
Автор: igor_andreev
Дата сообщения: 22.03.2008 19:26
XXXXL
В указанном месте не знаю, а скриншот активного окна или всего экрана из комстроки умеют делать и xnView и IrfanView

Код:
xnview.exe -capture=window,d:\screenshot_$.jpg
xnview.exe -capture=desktop,d:\screenshot_###.jpg
Автор: XXXXL
Дата сообщения: 22.03.2008 20:37
igor_andreev ,
пишет что xnview.exe не является внутренней и внешний командой......

я скачал, установил xnview и IrfanView. но без результата. Я даже указывал полный путь C:\Program Files\XnView\xnview.exe

что я сделал не так?
Автор: 01MDM
Дата сообщения: 22.03.2008 20:45
XXXXL
В кавычках? Полный путь с пробелами.
Автор: XXXXL
Дата сообщения: 22.03.2008 20:54
Извиняюсь. Сделал так:

Код: "%SYSTEMDRIVE%\Program Files\XnView\xnview.exe" -capture=window,d:\screenshot_$.jpg
"%SYSTEMDRIVE%\Program Files\XnView\xnview.exe" -capture=desktop,d:\screenshot_###.jpg
Автор: igor_andreev
Дата сообщения: 22.03.2008 21:19
XXXXL

Цитата:
Только первая строка сняла весь рабочий стол с окном cmd посередине
А вторая только окно cmd

Что естественно, программе сказали - она сделала

Цитата:
Возможно заставить снимать определённую область или хотя бы опрелелённое приложение?

У тебя задача то в чем состоит? От этого и пляши. Если тебе надо по хоткею делать снимок - то запускай не из cmd, ярлык просто сделай на рабочем столе с этими параметрами и назначь хоткей. И командная строка, батники и сценарии здесь тогда ни при чем, вон их таких прог сколько, и заданную часть экрана могут снимать в т.ч. и сохранять в любой формат
http://www.snapfiles.com/Freeware/gmm/fwscreen.html

Если несколько снимков подряд в твое отсутствие - то комстроку запуска в планировщик без всякого cmd.exe
Автор: 01MDM
Дата сообщения: 22.03.2008 22:47
XXXXL

Возможно решение при помощи nircmd.
Отдельную область она снять не может, а с окном или со всем экраном вполне, вот пример для всего экрана:

Код:
nircmdc sendkey 1068 press
nircmdc clipboard saveimage screen.png

Автор: XXXXL
Дата сообщения: 22.03.2008 23:21
01MDM,
А пример с окном можно посмотреть.
Автор: igor_andreev
Дата сообщения: 23.03.2008 00:11
XXXXL

Цитата:
А пример с окном можно посмотреть.

Alt нажми Это же стандартные виндовые комбинации клавиш, PrintScreen и Alt+PrintScreen

Код:
cmdow @ /hid
nircmdc sendkey alt down
nircmdc sendkey 1068 press
nircmdc sendkey alt up
nircmdc clipboard saveimage screen.png
Автор: XXXXL
Дата сообщения: 23.03.2008 00:48
Спасибо, разобрался ребята.
01MDM,igor_andreev
Автор: igor_andreev
Дата сообщения: 23.03.2008 00:49
01MDM

Цитата:
Отдельную область она снять не может,

А у меня получилось Используя косяк nircmdc. Ну может не косяк, не знаю, в предыдущем примере я использовал cmdow @ /hid, потому-что nircmdc скрывает свое окно, а потом при нажатии Alt-PrScr оказывается в буфере только часть экрана на месте спрятанной консоли. Cmdow.exe более глобально окно прячет.
Вот например так заснять кусок 500x500 в правом верхнем углу экрана

Код:
title +++
nircmdc win hide title "+++"
nircmdc win setsize title "+++" 0 0 500 500
nircmdc sendkey alt down
nircmdc sendkey 1068 press
nircmdc sendkey alt up
nircmdc clipboard saveimage screen.png
exit
Автор: 01MDM
Дата сообщения: 23.03.2008 09:14
igor_andreev

Пример интересный, т.к все делается "на лету". Наверное если nircmd сама прячет окно то она о нем помнит или его видит. Я думаю это скорее фича, чем косяк.

Так же можно воспользоваться nconvert, которую недавно обсуждали

Код:
nconvert -crop x y w h pic.jpg
:: x, y - координаты
:: w, h - длина и высота области

Автор: igor_andreev
Дата сообщения: 23.03.2008 14:21

Цитата:
Наверное если nircmd сама прячет окно то она о нем помнит или его видит. Я думаю это скорее фича, чем косяк.

Фича, похожая на баг Окно прячет, но оно остается активным(фокус не передается окну под ним) и Windows при нажатии Alt-PrScr снимает именно его, хоть и нет уже этого окна на экране.

Цитата:
Так же можно воспользоваться nconvert

Угу, всегда можно несколькими способами батник написать.
Цитата:
Вот например так заснять кусок 500x500 в правом верхнем углу экрана
Поправлюсь сам - в левом верхнем.

Автор: XXXXL
Дата сообщения: 24.03.2008 13:55
Здравствуйте.
Есть такая строка:

Код: call nircmdc.exe clipboard addfile "cl.txt"
Автор: 01MDM
Дата сообщения: 24.03.2008 14:30
XXXXL

У меня точно такая строка отработала правильно несколько раз подряд. И при одно- и при много-строчном буфере.
Автор: XXXXL
Дата сообщения: 24.03.2008 14:51
01MDM, и в самом деле работает как нодо. Даже не знаю почему в первый раз txt документ перезаписывался.
Извиняюсь за беспокойствие.
Автор: gamebit73
Дата сообщения: 25.03.2008 08:13
Здравствуйте.
1) Необходимо прочитать текстовый файл и сообщить, есть ли в нем знак "!". Знак "!" может встретиться в любой части файла.
2) Узнать размер папки и, если она превышает заданный размер, сообщить об этом. По этому вопросу нашел программу diruse, но она не очень удобная. Как раз она то и выводит превышение размера знаком "!".
Автор: 01MDM
Дата сообщения: 25.03.2008 08:44
gamebit73

1.

Код:
@echo off
findstr "!" 1.txt 1>nul && echo "!" exist || echo "!" NOT exist
Автор: 01MDM
Дата сообщения: 25.03.2008 15:43
gamebit73
diruse у меня нет, пользуюсь du.exe


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

set folder="C:\Path"

:: Размер в байтах
set max=3333333333

set m=0000000000000000%max%
set size-%m:~-16%=1

for /f "tokens=2*" %%i in ('du -q %folder% ^| findstr "Size:"') do set cur=%%i %%j

:: Вместо пробела нулевой символ, зависит от
:: HKEY_CURRENT_USER\Control Panel\International\\sThousand
:: Можно получить с помощью du folder >1.temp (скопировать из 1.temp)

set cur=%cur: =%

::

set s=%cur: =%
set s=%s: =%
set s=%s:bytes=%
set s=0000000000000000%s%
set size-%s:~-16%=1

for /f "tokens=2 delims=-=" %%i in ('set size ^| sort') do (
set check=%%i
goto:result
)

:result
echo.
if %check% equ %s:~-16% echo %folder% is not greater %max% bytes
if %check% equ %m:~-16% echo !! %folder% is GREATER %max% bytes !!
chcp 866 >nul
Автор: igor_andreev
Дата сообщения: 25.03.2008 16:25

Цитата:
2) Узнать размер папки и, если она превышает заданный размер, сообщить об этом. По этому вопросу нашел программу diruse, но она не очень удобная. Как раз она то и выводит превышение размера знаком "!".

А ты прочитай хэлп то к ней повнимательней, который diruse выводит на экран, будучи запущенной без параметров

Код:
/D Displays only directories that exceed specified sizes.
Автор: Maza Faka
Дата сообщения: 25.03.2008 17:29
gamebit73
Либо воспользоваться vb-скриптом:

Код:
Dir = "C:\Temp" 'Путь к папке
Size = 1000000 'Размер в байтах

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Dir)
If Folder.Size > Size Then MsgBox "Warning folder " & Dir & " size is critical!"
Автор: ffirefox
Дата сообщения: 27.03.2008 02:43
Такая странная проблема:
есть cmd-файл:

chcp 1251 >nul
.... тут что-то делаем ...

Этот файл надо регулярно выполнять в планировщике (по schtasks).
Но файл не выполняется, а останавливается на chcp и висит в назначенных заданиях в состоянии Running (запущен). Если в списке процессов прибить chcp, то коммандный файл продолжит выполняться дальше (причем кодовая страница будет переключена правильно).
При ручном запуске командного файла все работает нормально.

Это только у меня на машине (Win2003)? И как проблему можно решить?
Автор: JekaRus
Дата сообщения: 27.03.2008 04:56
01MDM
Спасибо тебе огромное за твой труд!
Недавно ты писал батник для lid111 для удаления временных файлов.
http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=340#5
Я его немного переделал чтоб он удалял файлы с системными и др атрибутами

Код:
elete
attrib -r -s -h *.* 1>nul 2>&1
del /q /a /f *.* 1>nul 2>&1
for /f "tokens=*" %%i in ('dir /b /ad') do rd /s /q "%%i" 1>nul 2>&1

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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