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

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

Автор: igor_andreev
Дата сообщения: 02.05.2006 08:55

Цитата:
Будут варианты?

Может попытаться создать в папке, передаваемой в качестве параметра, какой-нибудь временный файл и проверить его существование?

Код:

@ECHO OFF

ECHO.>"%~1\1HJT5R6S3.TMP"

IF EXIST "%~1\1HJT5R6S3.TMP" (
DEL "%~1\1HJT5R6S3.TMP"
ECHO FOLDER "%~1" EXIST
) ELSE (
ECHO FOLDER "%~1" NOT FOUND
)

Автор: Smitis
Дата сообщения: 04.05.2006 08:44
Мой вариант (проверяем атрибуты):

Код:
@echo off
setlocal
set atr=%~a1
if not "%atr%" == "" if not "%atr%" == "%atr:d=-%" echo Folder exist
endlocal
Автор: igor_andreev
Дата сообщения: 04.05.2006 12:41

Цитата:
(проверяем атрибуты):

Век живи - век учись, я про аттрибуты и не вспомнил вообще
Тоже для разминки - выполнить батником "эффект пишущей машинки". Например, как в фильме "Матрица", помните, там появляются на экране монитора буква за буквой:
Call trans opt: received. 2-19-98 13:24:18 REC:Log

У меня еще и получилось сделать, чтоб цифры на экране падали
Автор: Vehn
Дата сообщения: 04.05.2006 19:33
Вопрос не совсем по задачам, скорее по командам.. перерыл весь ntcmds.exe решения так и не нашёл. Вообще нужно получить некоторую информацию о компьютере сохранить в текстовый файл и отослать по мылу (если это возможно), что-то я нашёл, а что-то нет. Вот чего я не знаю как сделать:
1. Получить полный список установленных приложений (что-то наподобе pkg_info в никсах, точнее во FreeBSD).
2. Отослать получившейся текстовый файл на мыло (что-то на подобе net send, но только, чтобы посылал сообщение не по сетки, а получившийся текстовый файл на удалённый почтовый сервер, ну например на имейл pupkin@mail.ru)
3. Сделать так чтобы не открывалось чёрное окно во время выполнения всех этих и прочих операций
4. Сделать так, чтобы батник после своего выполнения удалился (самоуничтожился как бы чтоли... хотя сильно сомневаюсь, что такое возможно, если только методом помещения такого задания с помощью команды at в очередь

Как перенаправить вывод команд в файл и прочее расписывать нет необходимости, интересуют собственно сами команды. Спасибо.
Автор: Smitis
Дата сообщения: 04.05.2006 21:52
Vehn

Цитата:
1. Получить полный список установленных приложений (что-то наподобе pkg_info в никсах, точнее во FreeBSD).
2. Отослать получившейся текстовый файл на мыло (что-то на подобе net send, но только, чтобы посылал сообщение не по сетки, а получившийся текстовый файл на удалённый почтовый сервер, ну например на имейл pupkin@mail.ru)
3. Сделать так чтобы не открывалось чёрное окно во время выполнения всех этих и прочих операций
4. Сделать так, чтобы батник после своего выполнения удалился


1. regedit /ea uninstall.reg HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
(но только то, что туда при установке прописалось)
2. blat (см. в шапке)
3. cmdow (см. в шапке)
4. В конце батника del /q "%~f0"
Автор: Vehn
Дата сообщения: 04.05.2006 23:51
toSmitis
Спасибо, разобрался - работает. Меня заинтересовал вот какой момент что означает "%~f0" в команде удаления самого батника, нельзя прокомментировать этот фрагмент.
Автор: 01MDM
Дата сообщения: 05.05.2006 08:26
Smitis

Проверить существование папки можно через nul:

if exist path\to\folder\nul
Автор: Smitis
Дата сообщения: 05.05.2006 08:48
01MDM

Цитата:
Проверить существование папки можно через nul

Проверяем:

Код:
@echo off
if exist "%programfiles%\nul" echo Folder exist
if not exist "%programfiles%\nul" echo Folder not exist
Автор: Allex_Van_Fogen
Дата сообщения: 05.05.2006 09:15
Очередные грабли:


Код:
@echo off
echo aaa=1>file.txt
Автор: Smitis
Дата сообщения: 05.05.2006 09:28
Allex_Van_Fogen
echo aaa=^1>file.txt
Автор: 01MDM
Дата сообщения: 05.05.2006 10:08
Smitis


Цитата:
Получаем: Folder not exist


Странно получается с %programfiles%

Код:


Код:
C:\
[Дмитрий]# if exist "%programfiles%\nul" echo 1

C:\
[Дмитрий]# if exist %systemroot%\nul echo 1
1

C:\
[Дмитрий]#
Автор: igor_andreev
Дата сообщения: 05.05.2006 11:55

Цитата:
Да уж ГЫ.

Это не ГЫ, я про NUL и кавычки еще на прошлой странице написал


Автор: Smitis
Дата сообщения: 05.05.2006 14:26
А без кавычек как имена с пробелами проверять? Вот и не годится EXIST.
Автор: Devilx
Дата сообщения: 05.05.2006 14:41
так как же все таки запускать из батника приложение при этом закрыв окно бат файла?
заранее прошу прощение, если это уже много раз обсуждалось
Автор: Smitis
Дата сообщения: 05.05.2006 14:45
Devilx
start приложение
exit
Автор: Devilx
Дата сообщения: 05.05.2006 14:49

Цитата:
start приложение
exit

точно, забыл (

и еще постоянный пинг заданного ip в переменной и beep только тогда когда пакеты идут 100% в заданный промежуток времени?
как решить?
Автор: hacsoft
Дата сообщения: 05.05.2006 17:00

Цитата:
Тоже для разминки - выполнить батником "эффект пишущей машинки". Например, как в фильме "Матрица", помните, там появляются на экране монитора буква за буквой:
Call trans opt: received. 2-19-98 13:24:18 REC:Log

У меня еще и получилось сделать, чтоб цифры на экране падали

Вот, что получилось на мотив матрицы:

Код: @echo off
setlocal enabledelayedexpansion
mode con cols=80 lines=25
title M A T R I X
set str=Call trans opt: received. 2-19-98 13:24:18 REC:Log
for /l %%a in (0,1,50) do (
    cls
    echo !str:~0,%%a!_
    ping -n 1 -w 256 127.0.0.1 > nul
)
cls
echo %str%
ping -n 5 -w 1000 127.0.0.1 > nul
cls
color 02
:next
set scr=
for /l %%b in (0,1,78) do (
    set /a rnd=!random!%%2
    set scr=!scr!!rnd!
)
set /a r=%random%%%10
if %r%==0 color 0A
if %r%==1 color 02
echo %scr%
goto next
Автор: igor_andreev
Дата сообщения: 05.05.2006 17:31
hacsoft
Оно самое У меня только цифры по другому, а так ход мыслей такой же. zip, 1 Kb
Автор: nsky
Дата сообщения: 06.05.2006 15:20
Smitis

Цитата:
А без кавычек как имена с пробелами проверять? Вот и не годится EXIST.

А если так:

Код: @echo off
if exist "%programfiles%\nul" echo Folder exist
if not exist "%programfiles%\nul" echo Folder not exist

call :short "%programfiles%"
if exist %p%\nul echo Folder exist
if not exist %p%\nul echo Folder not exist
goto :eof

:short
set p=%~s1
goto :eof
Автор: AlexHote
Дата сообщения: 06.05.2006 17:51
Здравствуйте помогите с батником который отправляет папку в архив и присваивает ему имя=дата, делает ето каждый день при включении или при простое, затем раз в месяц удаляет все архивы старше 1 месяца исключая 1 архив на первое число каждого месяца
ну вы поняли ставится задача регулярного архивирования базы данных в качестве архиватора предпочтительнее винрар
Автор: evle
Дата сообщения: 07.05.2006 13:10
AlexHote
Архивацию с нужными параметрами сделать легко (смотри версию для печати, уже не раз обсуждалось), но чтобы делать что-то регулярно, одного батника недостаточно. Нужен планировщик, например nnCron, стандартный, либо другой.
Автор: RussianNeuroMancer
Дата сообщения: 07.05.2006 15:12
AlexHote
Если нет крайней необходимости делать именно батник то Очень рекомендовал бы использовать программу Acronis True Image Enterprise Server v9.1 (Обсуждение, Варез: домашняя и корпоративная редакции, серверные редакции; тема по всем пробуктам Acronis). Если быть более точным, то Тебе нужна фича Acronis Backup Server (там можно ставить ограничения по времени, суммарному размеру, количеству резервных копий). Каждая последующая копия будет содержать только разницу с предыдущей. Для корректноо бэкапа БД необходимо останавливать службы (batник net stop имя_службы) _перед_стартом_бэкапа_, но _после _старта_ их можно запускать (batник net start имя_службы). В результате службы находяться в отключенном состоянии секунд десять, не больше.
Автор: 01MDM
Дата сообщения: 07.05.2006 18:01
Devilx


Цитата:

start приложение
exit


А как это сделать из пакетного файла для запуска программы с графическим интерфейсом?
Пытался через taskkill убивать консоль (по имени, по заголовку), но ничего не получается. Самое лучшее чего добился, то это start /min.
Автор: BBogdan
Дата сообщения: 07.05.2006 18:45
Всем доброго времени суток
Помогите если не трудно
Уменя есть несколько папок
1 dfh
2 hdfgh
3 bdfhe
4 ghdfh
.........
в них находятся файлы с рисунками
1 dfh
1 dfghgd.jpg
2 gd.jpg
3 bhjgd.jpg
2 hdfgh

1 dfgxfbhgd.jpg
2 xfcgd.jpg
3 bhbdcfjgd.jpg
3 bdfhe
.....
4 ghdfh
......
У меня есть число допустим 100

как мне по алфавиту пройти все папки
и заходя в каждую папку менять имена файлов рисунков (проходя их по алфавиту ) на
100 +1

Тоесть если папок 4 в каждой по 3 рисунка то имя последнего рисунка в 4 папке
должно быть 112.jpg


Примечание

если в папке рисунки (раположу их по алфавиту)

a.jpg
b.jpg
c.jpg
d.jpg


a.jpg изменится на 100+1
b.jpg изменится на 101+1
c.jpg изменится на 102+1
d.jpg изменится на 103+1




Автор: mrmarvin
Дата сообщения: 08.05.2006 16:40
подскажите, какой командой из командной стpоки можно отключить/включить из
диспетчеpа устpойств какое нибудь устpойство, напpимеp модем.
Автор: SYMXP
Дата сообщения: 09.05.2006 16:42
mrmarvin

Есть вот такая командочка DevCon. Подробности смотри тут
http://support.microsoft.com/?kbid=311272
Автор: mrmarvin
Дата сообщения: 09.05.2006 18:19
SYMXP

спасибо, помогло
Автор: cluster
Дата сообщения: 13.05.2006 19:34
Ребят, есть 2 вопроса: 1. Есть такая функция у сетевога подключения "Исправить". Выделенка у меня отстой, приходится часто исправлять. Можно эту операцию как-то консольно сделать и без нажатия "закрыть" по окончании?
2. Можно ли стандартную команду ping выполнять скажем раз в 2 минуты по 1 пакету (автоматом)?
Автор: SYMXP
Дата сообщения: 13.05.2006 20:31
cluster
Посмотри netsh
Автор: cluster
Дата сообщения: 13.05.2006 22:11
SYMXP
ну глянул. А что там по моим вопросам?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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