Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Закрытая тема
Настройки темы
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Новый участник


Сообщения: 23
Благодарности: 3

Профиль | Отправить PM | Цитировать


Внимание!


В связи с созданием отдельного форума по скриптовым языкам, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь в написании батника". Это и так понятно Заголовок темы должен быть осмысленным.





Исходный вопрос участника
Всех приветствую.
Задача следующая: смотрим в в каталог (например d:\dir\*.*) и если в нем сущетвуют файлы возраст которых более 40 дней, то отправляем email на указанный адрес.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 01-11-2005

 

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вообще не удаляет? и нет никакой возможности ((
плин обидно...
А можно из WSH запустить батник на удаление просто, т.е. в теле WSH написать исполняемый код батника и чтобы он работал.

-------
Ночью все кошки серы, ночью все люди безумны


Отправлено: 07:44, 12-11-2008 | #431



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Liveofan:
Вообще не удаляет? »
удаляет если пройтись по всем вложенным ключам и удалять по списку "снизу", нужна рекурсивная функция... но нужна ли?

Цитата Liveofan:
А можно из WSH запустить батник на удаление просто, т.е. в теле WSH написать исполняемый код батника и чтобы он работал »
можно через метод RUN - либо весь батник, либо код построчно (обрати внимание на кавычки):
Код: Выделить весь код
Set WshShell = WScript.CreateObject("WScript.Shell")
Command = "REG ADD ""HKLM\SYSTEM\CurrentControlSet\Services\Cdrom"" /v AutoRun /t REG_DWORD /d 0 /f"
Return = WshShell.Run(Command, 1, true)

Отправлено: 13:15, 12-11-2008 | #432


Пользователь


Сообщения: 59
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем доброго дня суток.
Преамбула.
Код: Выделить весь код
K:\PROCEDURES\Internal>dir /b|findstr /i feed
Feedback procedure.doc
Амбула.
Код: Выделить весь код
K:\PROCEDURES\Internal>dir /b|findstr /i feed|start /b/max

K:\PROCEDURES\Internal>Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

K:\PROCEDURES\Internal>Feedback procedure.doc
'Feedback' is not recognized as an internal or external command,
operable program or batch file.
Вопрос: Почему оно не берёт из потока длинное имя файла целиком, а только до первого пробела, и как сделать, чтобы всё-таки start смог заглотить полное имя файла и открыть его? Я ж не передам ему в поток кавычки специально для start... К тому же, открывать может понадобиться файлы с именами, в которых даже очень много слов.
При этом проверено: если в потоке передаётся однородное имя файла без пробелов, то start нормально его открывает.

Отправлено: 15:37, 12-11-2008 | #433



Moderator


Сообщения: 53200
Благодарности: 15441

Профиль | Отправить PM | Цитировать


Gennie, примерно так:
Код: Выделить весь код
for /f "delims=" %i in ('dir /b *feed*') do start "" /b /max "%i"
Если сохранять в батник, %i заменить на %%i
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:51, 12-11-2008 | #434


Пользователь


Сообщения: 59
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо. Я тоже думал сначала реализовать таким путём, правда потом подумал, почему бы не попробовать взять имя файла напрямую из потока, и вот те на... Хочется понять всё же до конца: это действительно проблема именно самой команды start, что она берёт из канальной передачи не всё, а только самое первое слово до пробела? Ведь судя по выводу, поток нормально передаёт полное имя файла.

Отправлено: 16:11, 12-11-2008 | #435



Moderator


Сообщения: 53200
Благодарности: 15441

Профиль | Отправить PM | Цитировать


Gennie, если вы запустите:
Код: Выделить весь код
start /b /max Feedback procedure.doc
оно ведь не выполнится, понимаете?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:29, 12-11-2008 | #436


Пользователь


Сообщения: 59
Благодарности: 0

Профиль | Отправить PM | Цитировать


О, и правда, не подумал. Действительно не выполнится. И запихать кавычки туда тоже не получится. Значит, видимо, остаётся только через for. Благодарю!

Отправлено: 16:41, 12-11-2008 | #437


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


amel27,
спасибо большое, все помогло )

-------
Ночью все кошки серы, ночью все люди безумны


Отправлено: 04:49, 13-11-2008 | #438


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Liveofan, тогда на всякий случай функция удаления с подключами на VBS
Код: Выделить весь код
Const HKEY_CLASSES_ROOT  = &H80000000
Const HKEY_CURRENT_USER  = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS         = &H80000003

' Внимание! Скрипт удаляет всё "Избранное" Internet Explorer
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
sPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites"

Call DeleteRegEntry(objReg, HKEY_CURRENT_USER, sPath)

Function DeleteRegEntry(objReg, sHive, strEnumPath)
    Dim subkey, arrSubKeys

    objReg.EnumKey sHive, strEnumPath, arrSubKeys
    If IsArray(arrSubKeys) Then
        For Each subkey In arrSubKeys
            Call DeleteRegEntry(objReg, sHive, strEnumPath &"\"& subkey)
        Next
    End If

    Call objReg.DeleteKey(sHive, strEnumPath)
End Function

Отправлено: 08:59, 13-11-2008 | #439


Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


Есть exe-файл, запускающий cmd. Если кликнуть по нему 1 раз - запускается cmd-файл, если кликнуть 2 раза, то запускается тот же cmd, только дважды, тем самым один мешает работе другому и соответственно происходят ошибки.
Нужна cmd-команда, не позволяющая запустить одновременно 2 и более cmd-файлов, причём её нужно указать не в exe-файле, а в самом cmd, если это возможно.

Отправлено: 10:12, 13-11-2008 | #440



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. rancid Скриптовые языки администрирования Windows 3 23-07-2009 06:38
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! ofcoss Автоматическая установка приложений 7 10-07-2009 00:41
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок Nun-Nun Скриптовые языки администрирования Windows 6 14-05-2009 15:45
Нужна снова ваша помощь в написании интересного скрипта Magnus Вебмастеру 2 09-06-2005 20:26
Нужна помощь в написании скрипта Magnus Вебмастеру 7 06-05-2005 10:53




 
Переход