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

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

Автор: Free_Soft
Дата сообщения: 02.02.2011 20:52
wolf0425
Вроде заработало. теперь еще одно. Есть шесть параметров, которые содержат слова:
/color /timeout /lines /cols /uninstall /?
Задача, если пользователь ввел в параметре нечто отличное от ключевых слов, вывалилась ошибка. ищу так:
findstr /i /r "^/color ^/timeout ^/lines ^/cols ^/uninstall ^/?"
Все хорошо, кроме /?
Хм... проблема в другом: /? не передается почему-то в параметр через
Код: set par1=%~1
Автор: conty9
Дата сообщения: 02.02.2011 21:46
Помогите свести в одно целое две половинки
Уже не раз обсуждавшаяся задача: найти перебором на дисках файл и запустить его. Задача усложняется тем, что при переборе дисков может попасться нечитаемый - например, картридер без карточки. При обычном опросе выполнение на таком диске приостановится с запросом системы - пропустить/игнорировать/отменить. Но, как оказалось, можно использовать для проверки доступности диска команду dir - если диск недоступен, она тихо и скромно сообщит об этом. Прямо это использовать не смог, зато можно проанализировать наличие инфы о диске, для нечитаемых дисков это всегда будет нулевой файл, для доступных - какая-то инфа по диску. Например, следующая конструкция запустит my_prog.exe с диска D:\ и промолчит, если диск недоступен.
Код: For /f "tokens=1*" %%A in ('dir /d D:\') do set res=%%A
if %res% NEQ "" start D:\my_prog.exe & exit
Автор: 01MDM
Дата сообщения: 02.02.2011 22:10
conty9

Код:
for %%i in (C D E F G H I J K) do if exist %%i:\ (

doing smth on %%i:\

)
Автор: Free_Soft
Дата сообщения: 02.02.2011 22:27

Хочу сделать твик, позволяющий из контекстного меню exefile запускать екзешник с введенным параметром. Все бы ничего, но

Код: cmd.exe /c set /p k=%1 & echo.%k% & start "" "%1" %k%
Автор: conty9
Дата сообщения: 02.02.2011 22:42
01MDM, как этим стартонуть файл (без ошибок на пустом картридере), честно говоря, не понял. "doing" не является внутренней или внешней командой...
Автор: Free_Soft
Дата сообщения: 02.02.2011 22:51
conty9
припиши перед doing echo и увидишь, какие диски у тебя "читаемые"
Автор: conty9
Дата сообщения: 02.02.2011 23:00
Free_Soft, дык видеть то я вижу, а как это использовать для запуска? Конкретно, как стартонуть my_prog.exe из корня диска без замечаний на ридере?
Автор: Free_Soft
Дата сообщения: 02.02.2011 23:02

Код: @echo off
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\ (

if exist "%%i:\my_prog.exe" start "" "%%i:\my_prog.exe"

)
Автор: 01MDM
Дата сообщения: 02.02.2011 23:03
conty9

Код:
for %%i in (C D E F G H I J K) do if exist %%i:\ (

start "" "%%i:\my_prog.exe"

)
Автор: Free_Soft
Дата сообщения: 02.02.2011 23:07
есть вопросы поважнее
так как быть с этим?

Код: cmd.exe /c set /p k=%1 & echo.%k% & start "" "%1" %k%
Автор: conty9
Дата сообщения: 02.02.2011 23:19
01MDM, Free_Soft, спасибо!
Автор: 01MDM
Дата сообщения: 02.02.2011 23:19
Free_Soft

Цитата:
cmd.exe /c set /p k=%1 & echo.%k%

А откуда берется %1 ?
Вообще так:

Код:
cmd /v:on /c "set /p k= && echo !k!"
Автор: Free_Soft
Дата сообщения: 02.02.2011 23:25
01MDM
Огромный человеческий пасиб
Автор: Free_Soft
Дата сообщения: 03.02.2011 08:45

Код: cmd /v:on /c "set /p k= && echo !k!"
Автор: NIKZZZZ
Дата сообщения: 03.02.2011 09:21
Free_Soft

Цитата:
А можно как -то в этом выражении поставить метку?

Вместо этого можно использовать

Код: For /l %%i in (1,1,99999) Do .....
Автор: Free_Soft
Дата сообщения: 03.02.2011 09:23
NIKZZZZ
А можно поподробнее?..
Эти команды выполняются не из батника, а прописаны в реестре

Добавлено:
если так

Код: cmd.exe /v:on /c for /l %i in (1,1,99999) do set /p k=%1 & echo. & "%1" !k!
Автор: NIKZZZZ
Дата сообщения: 03.02.2011 09:36
Free_Soft

Примерно так

Код: cmd.exe /v:on /c "for /l %i in (1,1,99999) do (set /p k=%1 & echo. & ""%1"" !k!)"
Автор: Free_Soft
Дата сообщения: 03.02.2011 09:50
теперь пишет

Код: Непредвиденное появление: 1.
Автор: vitalikc
Дата сообщения: 03.02.2011 11:44
Добрый день помогите написать батник для архивации баз данных 1С в файловом варианте.

Структура такова размещение баз d:\bases нужно слаживать архив в e:\backup количество архивных копий 10 с датой и временем архивации, также хотелось бы использовать архиватор 7z.

Спасибо за помощь.
Автор: aidarsimon
Дата сообщения: 03.02.2011 13:37
не могу справиться с утилитой Blat - отправить на почту.


Код: C:\Users\Администратор>d:\admin\blat\blat.exe -pu "логин"-ppw "пароль" -server smtp.yandex.ru -f "исходящее мыло" -to "куда отправляем" -subject "тема письма" -body "текст письма."
Автор: Accessor
Дата сообщения: 03.02.2011 13:58
aidarsimon
вы констатируете факт или хотите спросить как одолеть Блата?
Автор: aidarsimon
Дата сообщения: 03.02.2011 14:08
Accessor
Все. разобрался. нашел неплохую инструкцию для новичков http://forum.mozilla-russia.org/viewprintable.php?id=36202

Автор: lorents
Дата сообщения: 03.02.2011 22:22
Добрый вечер!
Хочу добавить в свой проект поддержку Drag and Drop, но при этом чтобы была возможность

Код: for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
ImageCatalyst.bat "%%~fi"
)
Автор: Free_Soft
Дата сообщения: 03.02.2011 23:06

Код: cmd.exe /t:02 /q /v:on /c for /l %1 in (1,1,99999) do (set /p k=%1 & echo. & "%1" !k! & echo.)
Автор: 01MDM
Дата сообщения: 03.02.2011 23:21
lorents
Перетаскиваешь папку или файл(ы) на батник:

Код:
@echo off
setlocal

2>nul pushd %* && set "dragdrop=%*\*.png" & popd || set "dragdrop=%*"
for /f "tokens=*" %%i in ('dir /b /s %dragdrop%') do echo %%i

pause
Автор: Free_Soft
Дата сообщения: 03.02.2011 23:36
и еще. все это (код выше) прописывается в реестр через REG ADD. Сам батник может быть запущен с параметром, значение которого невольно передается через %~1 в строчку
Код: 1>nul 2>nul REG ADD "HKCR\%%a\shell\runpar...\command" /v "IsolatedCommand" /t REG_SZ /d "cmd.exe /q /v:on /c for /l %%%%i in (1,1,99999) do (set /p k=%%1 & echo. & \"%%1\" !k! & echo.)" /f
Автор: aidarsimon
Дата сообщения: 04.02.2011 07:41
Нужно очистить все журналы событий. c:\Windows\System32\winevt\Logs\ с сохранением всех бэкапов.

ключ очистки знаю


Код: wevtutil.exe cl "название журнала" /bu:"путь к бэкапу.evtx"
Автор: lorents
Дата сообщения: 04.02.2011 08:21
01MDM
именно то что надо. А нельзя ли сделать, если просто запускаешь batch, то он ищет файлы в папке "Images", а если через Drag and Drop, то папку "Images" не трогает?
Автор: wolf0425
Дата сообщения: 04.02.2011 09:59

Цитата:
если просто запускаешь batch, то он ищет файлы в папке "Images", а если через Drag and Drop, то папку "Images"

А как он будет различать эти случаи?
или "просто запускаешь" - это без параметров?

Автор: lorents
Дата сообщения: 04.02.2011 10:13
wolf0425
Если честно, мне сейчас важно, как заставить, что мой batch работал через данный код.

Код: for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
ImageCatalyst.bat "%%~fi"
)

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


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