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

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

Автор: FormatCvt
Дата сообщения: 25.12.2006 10:24
stalker0

Цитата:
Вопрос простой: подскажите или направьте куда :

Как ссылкой, бат-файлом (чем-угодно, лишь бы одним движением)

запустить процедуру выключения компьютера (ту самую: Пуск/Выключение/Выключение) ?


А shutdown.exe не подойдет?

Использование: shutdown.exe [-i | -l | -s | -r | -a] [-f] [-m \\<компьютер>]
        [-t xx] [-c "комментарий"] [-d up:xx:yy]

    Без аргументов        Вывод справки по использованию (как и -?)
    -i            Отображение интерфейса, д.быть первым параметром
    -l            Выход (не совместим с параметром -m)
    -s            Завершение работы компьютера
    -r            Перезагрузка компьютера
    -a            Прекращение завершения работы системы
    -m \\<компьютер>    Удаленный компьютер, на котором выполняется
                действие
    -t xx            Таймаут завершения работы - xx сек.
    -c "comment"        Комментарий (не более 127 знаков)
    -f            Принудительное завершение приложений без
                предварительного предупреждения
    -d [u][p]:xx:yy        Код причины завершения работы
                u - пользовательский код
                p - код запланированного завершения
                xx - основной код причины (1 - 255)
                yy - дополнительный код причины (1 - 65535)


Например ярлык или батник

%windir%\System32\shutdown.exe -r -f -t 05

перезагрузит комп через 5 секунд
Автор: Bablo
Дата сообщения: 01.01.2007 18:53
создал спиcок фильмов на ftp, такого вида

Код: 21_Grams.avi
All Souls Day (День всей нечисти).avi
Aziris.nuna.(Ts.2006.rus).avi
Basic_Instinct_2.avi
Batman & Robin (Бэтмэн и Робин).avi
Автор: Elroir
Дата сообщения: 01.01.2007 20:19
Bablo

Цитата:
можноли зделать батник

Можно:

Код:
@echo off
for /f "tokens=*" %%I in (mlinks.txt) do (
echo ^<a href="ftp://192.168.0.1/video2/%%I"^>%%I^</a^>>>movies.txt
)
Автор: Bablo
Дата сообщения: 01.01.2007 21:00
Elroir >>> спасибо
Автор: stalker0
Дата сообщения: 02.01.2007 03:50
tolyn77
FormatCvt

Спасибо, наберу.
Автор: king_stiven
Дата сообщения: 05.01.2007 02:23
Возможно ли обращение к ярлыкам папок и файлов как к самим папкам и файлам в батах?
также надо использовать количество цифр окончательного значения переменной.
Например окончательное значение num=253 , надо использовать цифру 3, num=25, надо использовать цифру 2
Автор: Smitis
Дата сообщения: 05.01.2007 14:49
king_stiven

Цитата:
Возможно ли обращение к ярлыкам папок и файлов как к самим папкам и файлам в батах?

Нет. Ярлык - это файл. И обращение к нему может быть только как к файлу.

Цитата:
также надо использовать количество цифр окончательного значения переменной.
Например окончательное значение num=253 , надо использовать цифру 3, num=25, надо использовать цифру 2

Несколько условий подряд

Код:
set len=1
if %num% geq 10 set len=2
if %num% geq 100 set len=3
if %num% geq 1000 set len=4
if %num% geq 10000 set len=5
if %num% geq 100000 set len=6
Автор: king_stiven
Дата сообщения: 07.01.2007 11:54

Цитата:
Нет. Ярлык - это файл. И обращение к нему может быть только как к файлу

То есть из ярлыка никак полный путь к файлу или папке не выдрать?
Автор: king_stiven
Дата сообщения: 07.01.2007 22:45
Пока получается так:

find "\"<имя.lnk | find ":">1.txt

и во второй строчке 1.txt получаем путь к файлу или папке.
Автор: Smitis
Дата сообщения: 07.01.2007 23:04
king_stiven
lnk - это бинарный файл. Подобный способ "выдирания" пути в ПРИНЦИПЕ будет работать (хотя я не понял, зачем два раза, одного условия ":\" не хватить? Проверять лень ) Но это НЕ НАДЁЖНЫЙ способ. Т.е. всегда надо помнить, что рано или поздно может возникнуть ситуация, когда ЭТО сработает не так как надо.
Автор: king_stiven
Дата сообщения: 07.01.2007 23:14

Цитата:
рано или поздно может возникнуть ситуация, когда ЭТО сработает не так как надо.

А например, в каких ситуациях? Учесть, что используются ярлыки к конкретным музыкальным файлам и папкам на одном компе.
Автор: Smitis
Дата сообщения: 08.01.2007 12:25
king_stiven

Цитата:
А например, в каких ситуациях?

А вот попадётся среди бинарных данных символ ":" и всё. А может и не попадётся никогда. Я же говорю - ненадёжный способ. Лучше воспользоваться WSH - там можно воспользоваься стандартными функциями для работы с ярлыками.
Автор: zig_zag
Дата сообщения: 11.01.2007 11:43
всем привет...!!! народ не подскажите как быть...???
никак не могу настроить Acronis:
Название файла должно содержать название источника и дату или день недели
- в зависимости от частоты архивирования.
Если в графике по дням недели, то название должно содержать название дня недели,
если раз в месяц, то чётность месяца...
При этом, архивы с днями недели должны храниться неделю
(т.е. архив за вторник должен затирать предыдущий архив за вторник)
Архивы, которые храняться по месяцу - должны затирать предпоследний архив
- т.е. в постоянно имеем два архива (чётный и нечётный месяц)

может можно скрипт воткнуть...???
Before backup process - поместить скрипт по удалению предыдущего архива
After backup process - поместить скрипт по переименованию полученного архива
Автор: Serge2005
Дата сообщения: 13.01.2007 23:10
Доброго времени суток. Есть такая задача. Запускается bat или cmd файл, который определяет свое местонахождение, из этого пути вытаскивает имя папки, в которой он лежит, присваивает это значение переменной, а потом, добавив это значение к новому пути, копирует файлы...Помогите, пожалуйста....

И еще, если ли какой-нибудь учебник для начинающих, как и что с примерами...? Выложите, пожалуйста, если есть...
Автор: Elroir
Дата сообщения: 14.01.2007 05:18
Serge2005

Код:
@echo off
setlocal enabledelayedexpansion

:: Setting the first part of destination directory
set dest=c:\temp\

:: Finding the length of batch file's pathname
set test=%~p0
set count=0
:again
for /f "delims=\ tokens=1*" %%a in ("%test%") do (
set /a count=!count!+1
set test=%%b
)
if not "%test%"=="" goto again

:: Finding and setting the second part of destination directory
for /f "delims=\ tokens=%count%" %%b in ("%~p0") do set wdir=%%b

:: Copying files to destination directory
copy *.* "%dest%%wdir%\"
Автор: Serge2005
Дата сообщения: 14.01.2007 10:00
Elroir
Спасибо)
Автор: lucky_Luk
Дата сообщения: 17.01.2007 20:57
Иногда мне нужно перезапустить Explorer, написал такой батник:

taskkill /f /im explorer.exe
cd %windir%
explorer.exe

Что дописать чтобы после запуска explorer.exe закрывалось окно командной строки?
ОС WinXP SP2.
Автор: Smitis
Дата сообщения: 17.01.2007 21:41
lucky_Luk

Цитата:
Что дописать чтобы после запуска explorer.exe закрывалось окно командной строки?

exit
Автор: lucky_Luk
Дата сообщения: 17.01.2007 22:09
Smitis

Цитата:
exit

Не помогает. ИМХО при обработке батника система ожидает пока закончит работу запущенный explorer.exe, а потом выполнит команду Exit. А поскольку Explorer продолжает работу то выполнение батника останавливается без получения Exit и окно остается.
Автор: Elroir
Дата сообщения: 17.01.2007 23:40
lucky_Luk

Цитата:
Что дописать чтобы после запуска explorer.exe закрывалось окно командной строки?
ОС WinXP SP2.

Попробуй запускать так:

Код: start explorer.exe
Автор: Fraerok
Дата сообщения: 18.01.2007 02:29
1) Можно ли через батник удалять пустые папки? Т.к., допустим, вот это DEL /S /Q "%ProgramFiles%\XXX" оставляет пустые папки.

2) Как сделать так, чтобы определенный блок DEL'ов он выполнял только, если пользователь скажет "Yes", а если пользователю это не нужно, то он пропускал этот блок?

Спасибо.
Автор: Elroir
Дата сообщения: 18.01.2007 02:42
Fraerok

Цитата:
Можно ли через батник удалять пустые папки?

Можно, только это делается не командой del, которая удаляет файлы, а командой rd:

Код: rd /s /q "%ProgramFiles%\XXX"
Автор: melmak
Дата сообщения: 18.01.2007 15:00
Привет!
Помогите решить оду задачку средствами бат

есть два значаения времени

14:15:44 14:16:06

необходимо вычислить разницу времени

Спасибо за помощь!
Автор: Elroir
Дата сообщения: 18.01.2007 23:01
melmak

Цитата:
есть два значаения времени 14:15:44 14:16:06 необходимо вычислить разницу времени


Код:
@echo off
setlocal
:: Checking number of arguments
if "%1"=="" goto :EOF
if "%2"=="" goto :EOF

:: Extracting hours, minutes, seconds
for /f "tokens=1-6 delims=: " %%a in ("%1 %2") do call :compare %%a %%d %%b %%e %%c %%f
goto :EOF

:compare
:: Deciding what time is later
if %1 GTR %2 (set later=first) else (
if %1 LSS %2 (set later=second) else (
if %3 GTR %4 (set later=first) else (
if %3 LSS %4 (set later=second) else (
if %5 GTR %6 (set later=first) else (
if %5 LSS %6 (set later=second) else (
set later=none ))))))

if %later%==none (
echo 00:00:00
goto :EOF
)

:: Calculating difference
if %later%==first (
set fh=%1& set sh=%2& set fm=%3& set sm=%4& set fs=%5& set ss=%6) else (
set fh=%2& set sh=%1& set fm=%4& set sm=%3& set fs=%6& set ss=%5)

set /a ds=%fs%-%ss%
if %ds% LSS 0 (
set /a ds=60+%ds%
set /a fm-=1
)

set /a dm=%fm%-%sm%
if %dm% LSS 0 (
set /a dm=60+%dm%
set /a fh-=1
)

set /a dh=%fh%-%sh%

:: Converting to 2 digits format
if "%ds:~1,1%"=="" set ds=0%ds%
if "%dm:~1,1%"=="" set dm=0%dm%
if "%dh:~1,1%"=="" set dh=0%dh%

echo %dh%:%dm%:%ds%
Автор: melmak
Дата сообщения: 19.01.2007 09:24
Спасиби большое Elroir

Помоги немного еще, я в этом деле новичек


Цитата:
Время передается батнику 2 аргументами.


можно задать значения не аргументами а переменными типа
set hh1=14
set mm1=15
set ss1=44
set hh2=14
set mm2=16
set ss2=06

Спасибо
Автор: Elroir
Дата сообщения: 19.01.2007 09:56
melmak

Цитата:
можно задать значения не аргументами а переменными

Можно, вместо

Код:
:: Checking number of arguments
if "%1"=="" goto :EOF
if "%2"=="" goto :EOF

:: Extracting hours, minutes, seconds
for /f "tokens=1-6 delims=: " %%a in ("%1 %2") do call :compare %%a %%d %%b %%e %%c %%f
goto :EOF
Автор: lucky_Luk
Дата сообщения: 19.01.2007 21:48
Elroir

Цитата:
Попробуй запускать так:

Код:
start explorer.exe

Спасибо, сработало.
Автор: hairy
Дата сообщения: 20.01.2007 12:09
Всем привет!
Можно ли как-нить зделать следущее:
вот таким вот батником я запускаю видео конвертор для перекодировки mpg в avi:

Цитата:
@echo off
encoder.exe -i *.mpg -всякие_опции out.avi

На выходе получается out.avi А реально сделать так,чтоб выходной файл атоматически назывался как и входной? *.mpg сделано чтоб любого имени файл с расширением mpg ,помещённый в папку начинал кодироваться.Просто лень постоянно переименовывать out.avi в оригенальное название, взятое из mpg
Спасибо.
Автор: royt
Дата сообщения: 20.01.2007 13:29
Необходимо экспортировать ветку реестра, название ключа которой содержит пробелы и символы " (кавычки) (один производитель софта догадался же свою ветку так обозвать...). Не могу заставить regedit.exe сделать это из командной строки.
Оно вообoе возможно?
Пробовал по-всякому - в параметре командной строки перед названием ключа и две кавычки ставить, и предварять символы кавычек слэшем (и два слеша, и три, и четыре - потому как внутри regedit.exe программеры тоже могли по-разному кавычкит интепретировать). Не работает никак.
Автор: Elroir
Дата сообщения: 20.01.2007 15:57
hairy

Цитата:
А реально сделать так,чтоб выходной файл атоматически назывался как и входной?


Код:
@echo off
for %%a in (*.mpg) do (
encoder.exe -i %%a -всякие_опции %%~na.avi
)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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