А так чтобы батник запускался при загрузке?
» Задачи на bat-файлах 6
Almasy создай на флэшке файл autorun.inf в нем пропиши запуск твоего батника
http://www.fssr.ru/hz.php?name=News&file=article&sid=7814
http://ru.wikipedia.org/wiki/Autorun
http://www.fssr.ru/hz.php?name=News&file=article&sid=7814
http://ru.wikipedia.org/wiki/Autorun
здравствуйте. Подскажите пожалуйста как сделать защиту от дурака, чтобы бат файл работал только при наступлении времени от и до?
я делаю так:
:time
if %time:~0,5% == 03:00 goto copy
sleep 10
goto time
:copy
срабатывает только в 3:00
нужно чтобы срабатывало от 3:00 и до 6:00
догадываюсь что нужно сделать проверку времени циклом типо FOR сравнивая его с текущщим временем, как реализовать?
я делаю так:
:time
if %time:~0,5% == 03:00 goto copy
sleep 10
goto time
:copy
срабатывает только в 3:00
нужно чтобы срабатывало от 3:00 и до 6:00
догадываюсь что нужно сделать проверку времени циклом типо FOR сравнивая его с текущщим временем, как реализовать?
Сделай двойное условие, вложенное друг в друга. В первом, если больше 3х, во врором - меньше 6ти
Здравствуйте. Подскажите как сделать чтобы при запуске 1.bat, запускался 2.bat через 1 минуту. Что-то похожее на таймер, через n-секунд запустить другой bat. Заранее спасибо!
>> potapich1
разве можно в батниках писать if %time:~0,5% => 03:00 ???
как поставить больше или равно или меньше или равно?
наверно надо делать так:
if %time:~0,5% == $a
а $a=%time:~0,5%+1 мин тока как правильно это записать?
>>DrepsVLZ
сделай таймером утилиту sleep из RESKIT
sleep 60
call 2.bat
не катит?
разве можно в батниках писать if %time:~0,5% => 03:00 ???
как поставить больше или равно или меньше или равно?
наверно надо делать так:
if %time:~0,5% == $a
а $a=%time:~0,5%+1 мин тока как правильно это записать?
>>DrepsVLZ
сделай таймером утилиту sleep из RESKIT
sleep 60
call 2.bat
не катит?
StHunter84
Запусти в комстроке
if /?
Запусти в комстроке
if /?
Привет уважаемые. Есть вопрос . Написал батник который чистит файлы в каталоге( и вложенных в него) (параметр 1) с расширением (пар2) оставляя столько то последних (параметр 3) по времени .
Ну идет проверка не пустые ли параметры если пустые что0то ставится по умолчанию.
if "%~3" == "" (
set kolv=7
) else (
set kolv=0
set kolv=%3
так работает
если писать ...
set kolv="%~3"
то дальше в строке
for /F " skip=!kolv! " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
дает ошибку а
for /F " skip=%kolv% " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
работает.
SETLOCAL ENABLEDELAYEDEXPANSION включен ( при выключенном тоже ошибку дает).
Ругается "skip="7" те берется не число и символьное значение. Почему параметр число передается как символ?
PS Батник работает просто теоретический интерес!
И еще. Почему когда пишешь
for /F " skip=%kolv% " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
без ключа /S %% i имеет вид <каталог запуска батника>.<имя найденного файла из другого каталога>. Ставишь /S -все ОК ?
Ну идет проверка не пустые ли параметры если пустые что0то ставится по умолчанию.
if "%~3" == "" (
set kolv=7
) else (
set kolv=0
set kolv=%3
так работает
если писать ...
set kolv="%~3"
то дальше в строке
for /F " skip=!kolv! " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
дает ошибку а
for /F " skip=%kolv% " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
работает.
SETLOCAL ENABLEDELAYEDEXPANSION включен ( при выключенном тоже ошибку дает).
Ругается "skip="7" те берется не число и символьное значение. Почему параметр число передается как символ?
PS Батник работает просто теоретический интерес!
И еще. Почему когда пишешь
for /F " skip=%kolv% " %%i in ('"dir %%d /b /S /O:-D^| find /i !rash! "') DO (
без ключа /S %% i имеет вид <каталог запуска батника>.<имя найденного файла из другого каталога>. Ставишь /S -все ОК ?
не увидел операторы сравнения, спасибо, получилось.
slay1212
Цитата:
Потому что ты его передаешь for-у, как символ (в кавычках). Параметр skip не принимает ничего, кроме числового значения после знака "=" (кстати - число 0 он тоже не принимает).
Цитата:
Так как ты не написал, что делается после DO, я предполагаю, что ты используешь модофикатор %%~dpi или %%~fI. Команда dir /b без ключа /s выводит только имена файлов, без полного пути. В этом случае, for пытается вычленить из названия файла путь, у него не получается и, поэтому for использует текущую директорию для подстановки пути.
Во втором случае, когда используется ключ /s - dir выводит имена файлов с полными путями и for берет пути оттуда.
Цитата:
Ругается "skip="7" те берется не число и символьное значение. Почему параметр число передается как символ?
Потому что ты его передаешь for-у, как символ (в кавычках). Параметр skip не принимает ничего, кроме числового значения после знака "=" (кстати - число 0 он тоже не принимает).
Цитата:
Почему когда пишешь for /F ... DO
без ключа /S %% i имеет вид <каталог запуска батника>.<имя найденного файла из другого каталога>. Ставишь /S -все ОК ?
Так как ты не написал, что делается после DO, я предполагаю, что ты используешь модофикатор %%~dpi или %%~fI. Команда dir /b без ключа /s выводит только имена файлов, без полного пути. В этом случае, for пытается вычленить из названия файла путь, у него не получается и, поэтому for использует текущую директорию для подстановки пути.
Во втором случае, когда используется ключ /s - dir выводит имена файлов с полными путями и for берет пути оттуда.
Elroir
Цитата:
Вот что значит, надо внимательно читать госты ! А после do пытался удалять лишние файлы. Причем %%~dpi брала путь батника а i - только имена файлов. Я думал /s только подкаталогов касается.
Цитата:
Команда dir /b без ключа /s выводит только имена файлов, без полного пути.
Вот что значит, надо внимательно читать госты ! А после do пытался удалять лишние файлы. Причем %%~dpi брала путь батника а i - только имена файлов. Я думал /s только подкаталогов касается.
StHunter84
Цитата:
Да, все получилось! Благодарю.
Цитата:
sleep 60
call 2.bat
не катит?
Да, все получилось! Благодарю.
Подскажите, как сделать условие: поиск символов (FINDSTR /R /I /C) в предопределенное переменной, если указанные символы есть делать goto если нет, то exit
batniki
Как же тебя трудно понимать!
Код:
echo %переменная% | findstr /i /r /c:"^abcd">nul && goto label || goto :EOF
Как же тебя трудно понимать!
Код:
echo %переменная% | findstr /i /r /c:"^abcd">nul && goto label || goto :EOF
Elroir, извини , спасибо! Нужно было заглушку поставить на set /P
Подскажите, как сделать, что-то типа ассоциативного массива, брать случайное его значение и выставлять ему set.
Проще говоря: есть несколько предопределенных переменных:
Код: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)
Подскажите, как сделать, что-то типа ассоциативного массива, брать случайное его значение и выставлять ему set.
Проще говоря: есть несколько предопределенных переменных:
Код: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)
batniki
Посмотри здесь - вопрос timsky и мой ответ ему.
Посмотри здесь - вопрос timsky и мой ответ ему.
У меня не совсем скриптовая задача, но очень похоже (собственно, вопрос и вырос из проблемы, возникшей со скриптом). Может быть кто поймет, почему dir не видит файл, хотя он есть:
D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
Volume in drive D has no label.
Volume Serial Number is 6CE4-C31D
Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
File Not Found
D:\share\Общая\АСМ-1\ТерешинАА\2>dir | find ".mp3"
04.08.2008 14:05 2 584 242 2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>
Или такой вариант (типа в топик):
D:\share\Общая\АСМ-1\ТерешинАА\2>files.cmd
D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b | find ".mp3" 1>files.txt
D:\share\Общая\АСМ-1\ТерешинАА\2>for /F "tokens=*" %i in (files.txt) do dir "%i"
D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
Volume in drive D has no label.
Volume Serial Number is 6CE4-C31D
Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
File Not Found
D:\share\Общая\АСМ-1\ТерешинАА\2>
D:\share\Общая\АСМ-1\ТерешинАА\2>type files.txt
2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>
Мистика?
D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
Volume in drive D has no label.
Volume Serial Number is 6CE4-C31D
Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
File Not Found
D:\share\Общая\АСМ-1\ТерешинАА\2>dir | find ".mp3"
04.08.2008 14:05 2 584 242 2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>
Или такой вариант (типа в топик):
D:\share\Общая\АСМ-1\ТерешинАА\2>files.cmd
D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b | find ".mp3" 1>files.txt
D:\share\Общая\АСМ-1\ТерешинАА\2>for /F "tokens=*" %i in (files.txt) do dir "%i"
D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
Volume in drive D has no label.
Volume Serial Number is 6CE4-C31D
Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
File Not Found
D:\share\Общая\АСМ-1\ТерешинАА\2>
D:\share\Общая\АСМ-1\ТерешинАА\2>type files.txt
2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>
Мистика?
Igor_V_Mitichev
Цитата:
Вряд-ли
Скорее в названии файла присутствуют русские буквы, которые выглядят, как латинские.
Цитата:
Мистика?
Вряд-ли
Скорее в названии файла присутствуют русские буквы, которые выглядят, как латинские.
Igor_V_Mitichev
Добавлю на ответ Elroir, еще файл может иметь атрибут "скрытый" (hidden)
Что показывает `dir /b /a *.mp3`?
Добавлю на ответ Elroir, еще файл может иметь атрибут "скрытый" (hidden)
Что показывает `dir /b /a *.mp3`?
Elroir,
Цитата:
чет он без goto display не работает
Цитата:
Посмотри здесь - вопрос timsky и мой ответ ему.
чет он без goto display не работает
batniki
Цитата:
А код и не должен работать без "goto display". Разбирайся.
Цитата:
чет он без goto display не работает
А код и не должен работать без "goto display". Разбирайся.
Теперь нужно в файлах из списка заменить IDST1 на IDST.
Если можно то без sbs2.com.
Ну если нельзя, то как есть.
Если можно то без sbs2.com.
Ну если нельзя, то как есть.
DrepsVLZ
в шапке есть утилитка nircmd, с ней варианты:
start /wait nircmd.exe wait 3000
или
nircmd cmdwait 1000
в шапке есть утилитка nircmd, с ней варианты:
start /wait nircmd.exe wait 3000
или
nircmd cmdwait 1000
Цитата:
Вряд-ли
Скорее в названии файла присутствуют русские буквы, которые выглядят, как латинские.
Во втором варианте мы что делаем: получаем через dir имена файлов в каталоге, через find отсеиваем те, которые имеют расширение mp3 и сохраняем их в файле files.txt и в конце концов через for пытаемся скормить команде dir эти самые файлы, которые она только что сама и выдала. Никакой перекодировки тут нет. Однако на фактически свой собственный вывод она ругается словами "File Not Found":
===============
dir /b | find ".mp3" > files.txt
for /F "tokens=*" %%i in (files.txt) do dir "%%i"
===============
To: 01MDM
==============
D:\share\Общая\АСМ-1\ТерешинАА\2>attrib "2x2-Roce On.mp3"
File not found - 2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b/a *.mp3
2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b *.mp3
2x2-Roce On.mp3
D:\share\Общая\АСМ-1\ТерешинАА\2>
==============
Igor_V_Mitichev
А если переименовать его - находит?
Помнится я умудрился как-то сохранить на диск файл с именем типа part1:part2, так тоже ни dir ни ren не видели в имени part2(думали наверно, что это ntfs-поток)
А если переименовать его - находит?
Помнится я умудрился как-то сохранить на диск файл с именем типа part1:part2, так тоже ни dir ни ren не видели в имени part2(думали наверно, что это ntfs-поток)
Elroir, спасибо за код, под вечер туплю просто
Подскажите, как сделать след.:
Есть .txt файл, в нем ссылки по одной на строку, такого вида http://domain.zone/shell1.exe,
как запустить все приложения из списка, после конечного слэша, с параметром start /w для каждого
Подскажите, как сделать след.:
Есть .txt файл, в нем ссылки по одной на строку, такого вида http://domain.zone/shell1.exe,
как запустить все приложения из списка, после конечного слэша, с параметром start /w для каждого
batniki
Попробуй такой вариант:
Код:
@echo off
setlocal
for /f "tokens=*" %%i in (1.txt) do set "app=%%i" && call:start
goto:eof
:start
set app=%app: =Ъ%
set app=%app:/=,%
for %%i in (%app%) do set app=%%i
start /wait "" "%app:Ъ= %"
Попробуй такой вариант:
Код:
@echo off
setlocal
for /f "tokens=*" %%i in (1.txt) do set "app=%%i" && call:start
goto:eof
:start
set app=%app: =Ъ%
set app=%app:/=,%
for %%i in (%app%) do set app=%%i
start /wait "" "%app:Ъ= %"
01MDM, спасибо, то, что нужно!
приветствую,
нужно определить размер файла, если он больше 10 байт то одно, нет другое..
читал форум сделал что то вроде этого
set file=file.txt
call :xxx %file%
:xxx
if %~z1 == 10240 (
goto :xxend
) else (
goto :eof
)
но во-первых он проверяет точный размер, во-вторых длиновато, в одну строку с использованием for можно?
нужно определить размер файла, если он больше 10 байт то одно, нет другое..
читал форум сделал что то вроде этого
set file=file.txt
call :xxx %file%
:xxx
if %~z1 == 10240 (
goto :xxend
) else (
goto :eof
)
но во-первых он проверяет точный размер, во-вторых длиновато, в одну строку с использованием for можно?
Есть ли у кого утилитка, которая бы показывала что идёт процесс выполнения батника? К примеру батник выполняется скрыто в течении нескольких секунд к примеру 30 сек, обычно пользователь может запустить процесс повторно, так вот в скрытом батнике запустить утилитку с полоской прогресса, а в конце сценария убить этот процесс.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: как сохранить сетевые настройки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.