Sidoy Опубликовано 16 июля, 2007 Жалоба Поделиться Опубликовано 16 июля, 2007 (изменено) Возникло несколько организационных вопросов, щас по мере того как я всё это пытался понять, я буду писать вопросы: 1-ое: :Loop создаем в начале цыкла метку для перехода GOTO2-ое: ping ya.ru | find /i "(100" вместо ya.ru пишу ip-адресс, например 10.10.10.5, что значит "|"?find /i - ищу в тексте, без учета регистра следующий текст "(100", вопрос что такое "(100"!!??? 3-ее: if %errorlevel% == 1 goto Loop, на сколько я понял то "1" возвращяется когда предыдущая операция завершена неудачно, т.е. в нашем случае если пинга нету, правильно? Изменено 16 июля, 2007 пользователем Sidoy Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 16 июля, 2007 Автор Жалоба Поделиться Опубликовано 16 июля, 2007 Sidoy: вместо ya.ru пишу ip-адресс Зачем? что значит "|"? Это передаёт управление следующей команде, чтобы та смогла обратиться к результатам первой (что-то в этом роде), а также это разделитель между командами... т.е поиск осуществляется в результатах возвращённых после ping... что такое "(100" Как я понял, это должно быть 100% потерь, потом ищем, если ping вернул 100% потерь, значит при поиске команда find вернёт уровень ошибочности 0, в противном случае 1 (и тогда значит всё в порядке).... хотя я бы сделал так цикл (более надёжнее): :LoopPing Google.com | Find /i "(100%%"If %ErrorLevel%==1 Goto Loop Т.е мы проверяем пингуется ли какой нибудь сервер (который очень редко падает, Google как раз ну оооочень редко падает - если вообще когда либо падает), и в результатах пинга ищем 100% - если не найдено, значит комманда find установит уровень ошибочности на 1, и тогда мы знаем что не было 100 процентов потерь, значит продолжаем цикл... если же найдено 100%, значит уровень ошибочности будет равен нулю, и тогда можно подключать соеденение и возвращаться на цикл. на сколько я понял то "1" возвращяется когда предыдущая операция завершена неудачно, т.е. в нашем случае если пинга нету, правильно? Нет, последняя командо то была Find, она и задаёт уровень ошибочности Ссылка на комментарий Поделиться на другие сайты Поделиться
Weltkind Опубликовано 26 октября, 2007 Жалоба Поделиться Опубликовано 26 октября, 2007 CreatoRПривет сможешь написать следующие батники? Задание 1. Создать командный файл,который позволяет по требованию пользователя: 1. распоковать архив формата arj в указанный каталог 2. распоковать архив формата zip в указанный каталог 3. если не указаны параметры командного файла, выводит подсказку. Задание 2. Реализуйте командный файл в ОС Linux, который может выполнять следующие действия: Вывести на экран содержимое корневого каталога, отсартированное по времени модификации файлов. В этом каталоге образовать свой пользовательский каталог, создать в нём файл, переименовать его, вывести содержимое файла на экран. Перенести данный файл в родитеський каталог. Перейти в корневой каталог. Вывести на экран календарь на текущий год. Ссылка на комментарий Поделиться на другие сайты Поделиться
kadvlad Опубликовано 26 ноября, 2007 Жалоба Поделиться Опубликовано 26 ноября, 2007 CreatoR Приветствую. Случайно увидел Вашу тему, и вспомнил о вопросе, на который никак не найду ответ. С Вашего позволения... Идея: быстрый доступ с любого места компьютера (пользую Total Commander) к файлу запуска определённой программы. Реализация: имеем программку "z.bat", которая лежит в одной из системных папок (проверил командой "set p" - путь к этой папке указан): @echo off start "c:\Program Files\Some Dir\Some SubDir\commandfilewithlongname.exe" exit пробовал также всякие вариации (в т.ч. пути без пробелов): @echo off cd "c:\Program Files\Some Dir\Some SubDir\commandfilewithlongname.exe" start commandfilewithlongname.exe exit Проблема: При запуске из коммандной строки "z" и напрямую (double-click по bat-файлу) открывается консоль, в которой видно, что была отработана целевая команда "commandfilewithlongname.exe" (её название в ком.строке и заголовке окна), однако сама программа при этом не запустилась. Можно ли по описанию определить, в чём моя ошибка? Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 ноября, 2007 Жалоба Поделиться Опубликовано 26 ноября, 2007 kadvlad: В каждом варианте - по ошибке. В первом варианте - у команды start особый синтаксис, надо заключать в кавычки не весь параметр, а каждое имя папки, содержащее в себе пробелы, по отдельности. Кавычки по краям всего параметра не нужны. Во втором варианте - неправилен синтаксис команды cd. С кавычками все в порядке, но параметр не должен заканчиваться именем файла. Он должен заканчиваться именем папки (каталога), содержащей этот файл, поскольку текущей (рабочей) объявляется именно папка, а не файл. Ссылка на комментарий Поделиться на другие сайты Поделиться
kadvlad Опубликовано 29 ноября, 2007 Жалоба Поделиться Опубликовано 29 ноября, 2007 надо заключать в кавычки не весь параметр, а каждое имя папки, содержащее в себе пробелы, по отдельности. Спасибо. Действительно, так теперь работает. Раньше привык заключать в кавычки весь путь целиком - как в Тотал Коммандере. Во втором варианте - неправилен синтаксис команды cd. Здесь явно ошибся, виноват. Недосмотрел. Спасибо за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
TAPAKAH Опубликовано 24 января, 2008 Жалоба Поделиться Опубликовано 24 января, 2008 Доброе время суток товарищи! Помогите немного разобраться. Значит замут такой нужно создать батник который будет запускаться на серваке назначенными заданиями и будет выполнять следующие действия: Пинговать определенный компьютер - если компьютер не в сети то пинговать пока он не появиться как только он появиться нужно начать копировать файлы с указанного места на тот комп который пингуется, после копирования создать лог который будет содержать такие данные 1.Лог файл обзывается названием сервака 2. Дату копирования, 3. время копирования, 4.Сведения о файле, 5. после копирования формировать лог файл и выкладывать с помощью wput выкладывать лог на фтп. Не подумайте что я Вас прошу сделать все это - это уже кое как сделал - но не уверен что правильно и совсем тем путем - помогите кто может - плиз!! @Echo onping 10.0.9.38 | find /i "(100"if %errorlevel% == 1 goto exitecho Restart...:Exitdate /t >kvdc0.txttime /t >time.txtdir "D:\1C BackUp\friday\" >D:\Backuplog\dir.txtdir "D:\1C BackUp\Monday\" >D:\Backuplog\dir1.txtdir "D:\1C BackUp\saturday\" >D:\Backuplog\dir2.txtdir "D:\1C BackUp\sunday\" >D:\Backuplog\dir3.txtdir "D:\1C BackUp\thursday\" >D:\Backuplog\dir4.txtdir "D:\1C BackUp\tuesday\" >D:\Backuplog\dir5.txtdir "D:\1C BackUp\wednesday\" >D:\Backuplog\dir6.txtcopy /y "D:\1C BackUp\friday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy.txtcopy /y "D:\1C BackUp\Monday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy1.txtcopy /y "D:\1C BackUp\saturday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy2.txtcopy /y "D:\1C BackUp\sunday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy3.txtcopy /y "D:\1C BackUp\thursday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy4.txtcopy /y "D:\1C BackUp\tuesday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy5.txtcopy /y "D:\1C BackUp\wednesday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy6.txtcopy kvdc0.txt+time.txt+copy.txt+copy1.txt+copy2.txt+copy3.txt+copy4.txt+copy5.txt+copy6.txt+dir.txt+dir1.txt+dir2.txt+dir3.txt+dir4.txt+dir5.txt+dir6.txtD:\wput\wput.exe d:\loglist.txt ftp://fort:хххххххх@хххх.ххххххх:21/LogBackup/kvdc0.txt Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 25 января, 2008 Жалоба Поделиться Опубликовано 25 января, 2008 TAPAKAH: для начала попробуй рассмотреть возможность оптимизации своего кода. например эту часть date /t >kvdc0.txttime /t >time.txt dir "D:\1C BackUp\friday\" >D:\Backuplog\dir.txt ... dir "D:\1C BackUp\wednesday\" >D:\Backuplog\dir6.txt можно выразить аккуратнее, используя утилиту forfiles и время\дату я бы советовал записывать в имя файла а не в его содержимое. set sourse_dir="D:\1C BackUp"for /f "tokens=1,2 delims=." %%i in ('date/t') do (set chislo=%%iset mesac=%%j)for /f "tokens=1,2 delims=:" %%i in ('time/t') do (set chas=%%iset min=%%j)forfiles -p%sourse_dir% -s -c"cmd /c if @ISDIR==FALSE echo @PATH\@FILE >> %sourse_dir%\log_%chislo%-%mesac%_%chas%-%min%.txt" далее copy /y "D:\1C BackUp\friday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy.txt... copy /y "D:\1C BackUp\wednesday\*.bkf" \\10.0.9.38\c$\Backup\*.bkf >copy6.txt реализуется одной командой xcopy но я бы советовал подумать о сжатии файлов перед передачей используя скажем бесплатный 7zip (консольный) получится что-то вроде set arhive_dir="D:\Temp"7za.exe a -tzip -r %arhive_dir%\arhiv.zip %sourse_dir%\*.bkf >> %sourse_dir%\log_%chislo%-%mesac%_%chas%-%min%.txt и потом уже перемещение архива на удаленный комп + добаляем в имя дату move %arhive_dir%\arhiv.zip \\10.0.9.38\c$\Backup\arhiv_%date%.zip только насчет работы со скрытыми шарами я не уверен, будет ли такой путь рабочим. Ссылка на комментарий Поделиться на другие сайты Поделиться
TAPAKAH Опубликовано 26 января, 2008 Жалоба Поделиться Опубликовано 26 января, 2008 спасибо буду пробовать если что неполучится отпишусь Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Привет. Нужен батник или vbs, лучше и то и другое, а также запускалось в невидимом режиме. Очищать надо конечную папку по пути: [HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache] Ссылка на комментарий Поделиться на другие сайты Поделиться
adm_art Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 (изменено) Wu-Tang: ну строчка должна быть вот такой REG DELETE HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\ /f а по скрытности ищи своё решение :) Изменено 31 января, 2008 пользователем adm_art Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 adm_art: Эта же команда сносит папку MUICache, а мне надо только чистить ее! Ссылка на комментарий Поделиться на другие сайты Поделиться
Ray Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Вместо параметра /f используй /va Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Ray: Так /f тоже надо, а то запрос на удаление требовать будет. А как сделать, чтоб батник запускался в невидимом режиме? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Wu-Tang: а как ты его планируешь запускать? если средствами Планировщика то консольное окно не отображается. кстати здесь уже говорилось об утилите CMDOW, с ее помощью так же можно это сделать. wiki по использованию утилиты Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 31 января, 2008 Жалоба Поделиться Опубликовано 31 января, 2008 Maikll: А vbs-ку можешь написать? Я батник реализовал так: MUICaсhe_Cleaner.rar MUICaсhe_Cleaner.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 1 февраля, 2008 Автор Жалоба Поделиться Опубликовано 1 февраля, 2008 Wu-Tang: Вот vbs'ка (хотя не по теме): Set WshShell = CreateObject("WScript.Shell")WshShell.Run "%comspec% /c REG DELETE HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\ /f /va", 0, True Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 1 февраля, 2008 Жалоба Поделиться Опубликовано 1 февраля, 2008 CreatoR: А можно ли к этой vbs-ке иконку прикрутить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 1 февраля, 2008 Жалоба Поделиться Опубликовано 1 февраля, 2008 Значок привязан к типу файлов VBS. Можно поменять его для всех файлов этого типа (с этим расширением) или сделать к файлу ярлык, для ярлыков можно задать индивидуальные значки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 2 февраля, 2008 Жалоба Поделиться Опубликовано 2 февраля, 2008 Тролль: Просто я где-то читал, что есть прграмма, которая насильно присваивает иконку любым файлам. Microangelo вроде, но не уверен. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 2 февраля, 2008 Жалоба Поделиться Опубликовано 2 февраля, 2008 Wu-Tang: Это уже не в самом файле VBS, а внешняя программа для изменения интерфейса. На другом компьютере иконка станет опять стандартной. Насчет индивидуальных иконок именно для файлов со скриптами и документами в Microangelo точно не помню, но вполне может быть, легко попробовать, программка небольшая. Можно скачать на Софтодроме, хотя она шароварная. Я когда-то использовал Microangelo для анимации иконок, это красиво. Потом мелькание на экране мне надоело, как всегда у меня с украшательством. В конце концов остается только то, что полезно, а не то, что красиво :) . Ссылка на комментарий Поделиться на другие сайты Поделиться
Polizzay Опубликовано 4 февраля, 2008 Жалоба Поделиться Опубликовано 4 февраля, 2008 Помогите, плиз. Стоит задача - запустить прогу из командной строки с определенными параметрами запуска, а потом тупо ее закрыть. Точнее задача состоит в следующем - программа сетевая, нужно удалить один из файлов, но при работе сетевых пользователей он блокируется. Определенные параметры это и есть закрытие сетевых сессий Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 4 февраля, 2008 Жалоба Поделиться Опубликовано 4 февраля, 2008 Polizzay: Если программа не поддерживает возможность запуска с параметрами, задача невыполнима. Почему нельзя удалить этот файл отдельно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Polizzay Опубликовано 5 февраля, 2008 Жалоба Поделиться Опубликовано 5 февраля, 2008 Polizzay: Если программа не поддерживает возможность запуска с параметрами, задача невыполнима. Почему нельзя удалить этот файл отдельно? Программа поддерживает запуск с параметрами, одним из параметров является отключение сетевых пользователей. Это успешно выполняется, но как бы закрыть программу из батника... Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 февраля, 2008 Жалоба Поделиться Опубликовано 5 февраля, 2008 но как бы закрыть программу из батника...С помощью системной утилиты taskkill. Описание и примеры использования, как обычно, можно получить запуском taskkill -? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения