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

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

Автор: NIKZZZZ
Дата сообщения: 30.09.2009 10:42
zett

Цитата:
чтобы блаблабла не зацикливалось, а просто один раз напилало и все?

Добавь Cls перед echo bla-bla-bla, получится мигающее bla-bla-bla.
Автор: zett
Дата сообщения: 30.09.2009 10:44
NIKZZZZ

Цитата:
Добавь Cls перед echo bla-bla-bla, получится мигающее bla-bla-bla.


Отличный вариант! Пасибо)
Автор: mugil_cephalus
Дата сообщения: 30.09.2009 14:08
повторю свой вопрос с 48-ой страницы, может кто знает??...


Цитата:
А можно как то коммандной строкой вызвать для просмотра коды из *.DLL-ов ?
А то у меня получается только для printui.dll:

C:\>rundll32 printui.dll,PrintUIEntry /?

вот вывод:
Использование: rundll32 printui.dll,PrintUIEntry [параметры] [@командный файл]
/a[имя_файл] имя двоичного файла
/b[имя] основное имя принтера
/c [имя] UNC-имя компьютера, где выполняется команда
/dl удаление локального принтера
/dn удаление подключения к сетевому принтеру
/dd удаление драйвера принтера
/e вывод параметров настройки печати
/f[file] или информационный файл, или выходной файл
/ga добавление подключений компьютеров к принтеру
/ge перечисление подключений компьютеров к принтеру
/gd удаление подключений компьютеров к принтеру
/h[arch] Архитектура драйвера для: Alpha | Intel | IA64 | х64
/ia установка драйвера принтера с помощью информационного файла
/id установка драйвера принтера с помощью мастера установки драйверов принтеров
/if установка принтера с помощью информационного файла
/ii установка принтера с помощью мастера установки принтеров и информационного файла
/il установка принтера с помощью мастера установки принтеров
/in добавление подключения к принтеру
/j[provider] имя системы печати
/k печать пробной страницы на выбранном принтере, не может использоваться с другими командами установки принтера
/l[path] путь к исходному размещению драйвера принтера
/m[model] имя модели драйвера принтера
/n[name] имя принтера
/o показать очередь заданий на печать
/p отображение свойств принтера
/q скрытый режим без вывода сообщений об ошибках
/r[port] имя порта
.........................

и т.д.



Добавлено:
про http://dx21.com/coding/libraries/rundll32/default.aspx знаю, но там уже готовые результаты выложены, а других DLL-библиотек еще же куча....

Добавлено:
и еще вопрос autoIt платная?
Автор: wolf0425
Дата сообщения: 30.09.2009 14:23
korosya

Цитата:
Подскажите, возможно ли из командной строки изменить версию файла?
Сильно зависит от того что ты понимаешь под версией файла и что за файл.
Автор: Simoid
Дата сообщения: 30.09.2009 16:15
Помогите реализовать следующее...

В рамках решения вопроса:
http://forum.ru-board.com/topic.cgi?forum=8&topic=34377

возникла гениальная идея написать батник с такими задачами:

1) Проверяем любой уникальный ID железа на ПК
2) Если совпадает с тем, что прописан в батнике - закрываемся
3) Если не совпадает - удаляем какие то важные системные файлы, чтобы ОС больше не загрузилась. После удаления перегружаем ПК...

Задача написана коряво - сам смутно понимаю процесс. Ясна только теория...

Хотелось бы получить готовый батник, который откомпилирую в EXE-файл и пропишу в сервисы, как служба.

Буду благодарен за любую консультацию.


Автор: mugil_cephalus
Дата сообщения: 30.09.2009 16:29
evle
по поводу http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=840

Цитата:
ViSiToR

Цитата:Как переменную вывести в виде сокращённого пути? или как преобразовывать обычны путь в коротки?

Из справки к for:
%~fsI Expands %I to a full path name with short names only.
Точно так же можно обрабатывать параметры, переданные батнику (%~fs1). Что делать дальше, думаю, понятно. Сделать без привлечения for, видимо, нельзя.


а если запросить короткий путь у command.com и результат возвратить в батник?
P.S.
прошу прощения, может несвоевременно - постепенно и разбираясь читаю дерево темы "Задачи на bat-файлах" (сейчас на 2-ой части 43-ей странице).
Автор: 01MDM
Дата сообщения: 30.09.2009 17:39
mugil_cephalus

Цитата:
а если запросить короткий путь у command.com и результат возвратить в батник?

А зачем? Что так, что эдак:

Код:
@echo off
for /f %%i in ('command /c cd') do echo %%i
for /f "tokens=*" %%i in ('cd') do echo %%~si
call:1 "%cd%"
goto:eof

:1
echo %~s1
Автор: korosya
Дата сообщения: 30.09.2009 22:50
wolf0425

Цитата:
Сильно зависит от того что ты понимаешь под версией файла и что за файл.

Файл - AkelPad.exe. Версия файла - в ресурсх - "FileVersion" "4.3.2.0"


Автор: Alexeyfan
Дата сообщения: 30.09.2009 23:36
01MDM
NIKZZZZ
Спасибо за ответы, буду пробовать.
Автор: Shylock
Дата сообщения: 01.10.2009 00:30
Господа, возникла крайняя необходимость вести логи комманд, а также хода их выполнения. Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.
Как такое провернуть?

Спасибо.
Автор: wolf0425
Дата сообщения: 01.10.2009 03:29
korosya

Цитата:
Файл - AkelPad.exe. Версия файла - в ресурсх - "FileVersion" "4.3.2.0"
Поясни - зачем менять прописанный автором номер версии у файла?
Какое тебе счастье что ты поменяешь в ресурсах 4.3.2.0 на какой-нибудь 4.3.2.1 - от этого же количество багов не поменяется (в отличие от установки нормального 4.3.2.1)

а вообще ссылка на патчилку бинарников - тут недавно мелькала, осталось придумать способ вычисления места замены.

Автор: GRom V
Дата сообщения: 01.10.2009 06:39
Все....разобрался
Автор: korosya
Дата сообщения: 01.10.2009 07:01
wolf0425

Цитата:
Поясни - зачем менять прописанный автором номер версии у файла?
Какое тебе счастье что ты поменяешь в ресурсах 4.3.2.0 на какой-нибудь 4.3.2.1 - от этого же количество багов не поменяется (в отличие от установки нормального 4.3.2.1)

Это я привёл для примера. Вообще-то мне надо заменить "AkelPad text editor" на "Блокнот". Это я хочу сделать для того, чтобы здесь не использовать AutoIt/
Автор: NIKZZZZ
Дата сообщения: 01.10.2009 07:07
Shylock

Цитата:
Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.

Здесь.


Добавлено:
korosya

Цитата:
возможно ли из командной строки изменить версию файла?

ResHacker



Добавлено:
Simoid

Цитата:
Проверяем любой уникальный ID железа на ПК

devcon (есть в шапке)
Автор: Smitis
Дата сообщения: 01.10.2009 09:43
Shylock

Цитата:
Господа, возникла крайняя необходимость вести логи комманд, а также хода их выполнения. Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.

Найти клон никсовской команды TEE, например MTEE сдесь
Автор: korosya
Дата сообщения: 01.10.2009 10:46
NIKZZZZ

Цитата:
ResHacker


ResHacker может заменить тоько весь ресурс целиком, а мне надо заменить только ОДНО слово (предложение). То есть я хочу дать команду типа "Заменить "AkelPad text editor" на "Блокнот" в ресурсе "VersionInfo".
Автор: voooov
Дата сообщения: 01.10.2009 12:49
неожиданно возникла такая проблема


С:\folder\ содержит:
Proga.exe
Zapuskproga.bat (Start Proga.exe -normal)


диск D:\ - я тут нахожусь и пишу в командной строке
С:\folder\Zapuskproga.bat и нажимаю энтер

виндовс7 выдает ошибку - "Proga.exe - не найдена"

станность то что только вчера всё работало
правда поменял Proga.exe на новую версию (а всё остальное было так)
Автор: dmitri23
Дата сообщения: 01.10.2009 13:00
voooov
Ну сразу возникает идея, об имени файла, может где-нибудь затисался пробел, или какая-нить буква русская. Попробуй ручками переименовать или вставить название из батника
Автор: 01MDM
Дата сообщения: 01.10.2009 13:20
voooov
У тебя не работает, так как ты запускаешь батник из другой директории. И при запуске этот батник ищет Proga.exe в текущей директории (откуда дал команду). Пропиши в своей запускалке так:

Код:
start "" "%~dp0Proga.exe"
Автор: NIKZZZZ
Дата сообщения: 01.10.2009 13:21
korosya

Цитата:
ResHacker может заменить тоько весь ресурс целиком

А разве сложно извлечь нужный ресурс (versioninfo), отредактировать его и заменить им прежний?

Автор: gitars
Дата сообщения: 01.10.2009 13:48
Есть папка с файлами, в том числе и jpg. Нужно переименовать все jpg-файлы, оставив только 3 последних символа имени, т.е. если имя файла "okcom-0001.jpg", его нужно переименовать в 001.jpg, и так же остальные, длина названий у файлов разная.
После этого нужно заархивировать jpg-и в архив rar с профилем stand.
Получилось вот что:
-------------------------------------------
set thePATH=%CD%
for %%I in (*.jpg) do ren "%thePATH%\%%~nxI" "%%~nI.jpg"
c:\PF\WinRAR\Rar.exe a -ibck "-cpstand" texts *.jpg
-------------------------------------------
только не знаю что подставить вместо
"%%~nI.jpg" чтобы получилось только 3 последних символа названия
и вместо texts *.jpg чтобы имя архива было такое же как и имя папки в котором лежит батник.
Автор: voooov
Дата сообщения: 01.10.2009 14:34
dmitri23
Цитата:
может где-нибудь затисался пробел, или какая-нить буква русская.
хз.. когда сверху в батнике дописываю CD С:\folder\ всё работет

01MDM
Цитата:
батник ищет Proga.exe в текущей директории (откуда дал команду). start "" "%~dp0Proga.exe"
спасибо.. интересный способ.. не знал.. только непонятно почему батник только недавно искал где надо.. чудеса..
Автор: korosya
Дата сообщения: 01.10.2009 14:42
NIKZZZZ

Цитата:
А разве сложно извлечь нужный ресурс (versioninfo), отредактировать его и заменить им прежний?

Подскажи, пожалуйста, как это сделать из командной строки?
Автор: gitars
Дата сообщения: 01.10.2009 17:54
нашла как сделать имя архива такое же как у папки, вот что получилось:
---------------------------------------------------------------------------------
set thePATH=%CD%
for %%I in (*.jpg) do ren "%thePATH%\%%~nxI" "%%~nI.jpg"

c:\PF\WinRAR\Rar.exe a -ibck "-cpstand" PAT *.jpg

@echo on
setlocal enabledelayedexpansion
pushd ..
call :find_dir "%thePATH%"
popd
echo %parent_dir%
goto :EOF
:find_dir
set "parent_dir=%~nx1"

ren "%thePATH%\PAT.rar" "%parent_dir%.rar"
---------------------------------------------------------------------------------

кто-нибудь знает все-таки как оставить в именах файлов только 3 последних символа?

Имена всех файлов в основном такого типа:
"mmtaobookco-taobookco0-0070.jpg"
"aobookcomm-1aobookcom-0071.jpg"
Автор: 01MDM
Дата сообщения: 01.10.2009 18:53
gitars

Цитата:
кто-нибудь знает все-таки как оставить в именах файлов только 3 последних символа?


Код:
@echo off
for %%i in (*.jpg) do call:ren "%%i"
goto:eof

:ren
set "oldname=%~n1"
ren %1 "%oldname:~-3%%~x1"
Автор: NIKZZZZ
Дата сообщения: 01.10.2009 22:51
korosya

Цитата:
"Заменить "AkelPad text editor" на "Блокнот" в ресурсе "VersionInfo"

Примерно так:


Код: reshacker -extract c:\windows\notepad.exe,info.res,versioninfo,,
reshacker -delete AkelPad.exe,AkelPad.exe,versioninfo,,
reshacker -add AkelPad.exe,AkelPad.exe,info.res,versioninfo,,
Автор: gitars
Дата сообщения: 02.10.2009 07:16
01MDM
спасибо, отлично работает, только код для названия текущей дирректории потом ругается на ren "%thePATH%\PAT.rar" "%name%.rar", поэтому эту часть оставила прежней, хоть она намного длиннее вашей
кстати, код по переименованию предложили еще такой:
----------------
setlocal ENABLEDELAYEDEXPANSION
for %%I in (*.jpg) do (
set d=%%~nI
set d=!d:~-3!
ren %%I !d!.jpg
)
----------------
в любом случае они оба работают
Автор: korosya
Дата сообщения: 02.10.2009 10:24
NIKZZZZ
А где в твоём примере замена "AkelPad text editor" на "Блокнот"?
Автор: NIKZZZZ
Дата сообщения: 02.10.2009 10:35
korosya

Цитата:
А где в твоём примере замена "AkelPad text editor" на "Блокнот"?

Ресурс извлекается из Notepad.exe и им заменяется соответствующуй ресурс в AkelPad, то-есть он становится блокнотом.
Автор: 01MDM
Дата сообщения: 02.10.2009 11:03
gitars
Что-то я все перепутал, конечно проще определить название текущей папки так:

Код:
for %%i in (%cd%) do set "name=%%~nxi"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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