Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 4
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

Всего записей: 11065 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igor99999

Цитата:
Как сделать,...

Насколько я знаю - никак.


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:13 22-05-2007
Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir  
 
А почему после ввода переменной компьютер начинает подвисать на 1-2 мин при попытке обратиться к свойствам ярлыка? Ярлык ссылается на место, прописанное в переменной.

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 17:29 22-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igor99999
Не знаю почему у тебя подвисает - у меня все работает нормально.
Что именно ты меняешь в ярлыке?

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:44 22-05-2007
Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
 
Переменную создал через Мой компьютер - свойства - дополнительно - переменные среды. Переменная работает.
G:/Files/Papka одно и то же, что и %variable%/Files/Papka
Подвисает не когда меняю, а когда нажимаю свойства ярлыка или даже невозможно создать ярлык из-за подвисания. Если переменная не прописана, то все нормально. На это может влиять размер диска G 250 Гб?
 

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 17:59 22-05-2007
VovaII

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как решить две проблемки:
1) Как батником из папки удалить подпапки?  
(Поставил батник в автозагрузку, чтобы каждый раз при старте чистил папку TMP, не спрашивая подтверждения. Но он чистит только файлы оттуда, а папки остаются.)
 
2) Как сделать, чтобы батник сам закрывался?
(Через батник запускается программа и остается висеть в памяти(так и нужно), но при этом окно батника не закрывается, а продолжает висеть.)
 
Спасибо.

Всего записей: 286 | Зарегистр. 20-09-2006 | Отправлено: 18:41 22-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VovaII

Цитата:
1) Как батником из папки удалить подпапки?


Код:
 
cd /d c:\temp
rd /s /q c:\temp 2>nul
 


Цитата:
2) Как сделать, чтобы батник сам закрывался?
 

Код:
start "" "program.exe"

Имеется в виду, что перед названием программы, надо добавить команду start ""
 
Добавлено:
Igor99999
Я немного не понимаю - если G:/Files/Papka и %variable%/Files/Papka это одно и тоже, значит в переменной %variable% находится значение "G:"?

Цитата:
На это может влиять размер диска G 250 Гб?

Нет.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:52 22-05-2007 | Исправлено: Elroir, 19:04 22-05-2007
Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как должен выглядить скрипт, который:
1. Сделает ярлыки ко всем папкам (подпапкам) в определенной директории
2. Сложит все ярлыки в одну директорию
3. В свойствах ярлыка поставит вместо пути абсолютного путь относительный согласно прописанной переменной (%variable%/).

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 21:18 22-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igor99999

Цитата:
Как должен выглядить скрипт

Примерно так:

Код:
 
@echo off
md shortcuts 2>nul
for /f "tokens=*" %%a in ('dir /b /ad "%variable%\"') do (
nircmdc shortcut "~x25variable~x25\%%a" ".\shortcuts" "%%a"
)
 

Перед началом работы установить переменной variable значение нужной директории.  
Используется утилита NirCmd.
В процессе работы создается директория "shortcuts", куда и складываются все созданные ярлыки.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:45 22-05-2007
Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir  
 
Спасибо, скрипт работает, только он делает ярлыки ко всем папкам в корневой директории, а нужно еще ко всем поддиректориям, ко всему дереву поддиректорий в корневой директории. Это возможно?

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 23:24 22-05-2007
find

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может не в тему, но все-таки:
у меня в Windows XP не работает короткий путь C:\Progra~1\  
может знает кто решение проблемы - перерыл реестр и инфу в инете - так и не решилось пока.

Всего записей: 220 | Зарегистр. 27-09-2004 | Отправлено: 04:12 23-05-2007 | Исправлено: find, 04:14 23-05-2007
Rurik



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
find
пользуйся переменной %ProgramFiles%

Всего записей: 343 | Зарегистр. 07-05-2002 | Отправлено: 07:32 23-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Igor99999

Цитата:
нужно еще ко всем поддиректориям

В коде Elroir-а в строке ('dir /b /ad "%variable%\"') добавь ключ "/s" (для всех вложенных каталогов)
dir /s /b /ad "%variable%\

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:27 23-05-2007 | Исправлено: Maza Faka, 08:27 23-05-2007
Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
 
С ключом /S ерунда получается. На поддиректории ярлыки делаются, но ярлыки получаются вида %variable%\D:\Files\Papka, а должны быть такого вида %variable%\Papka. Естественно ярлыки при этом не рабочие.

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 08:49 23-05-2007
VovaII

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Спасибо!
Вопрос:

Цитата:
rd /s /q c:\temp 2>nul  

Зачем тут 2?

Всего записей: 286 | Зарегистр. 20-09-2006 | Отправлено: 10:01 23-05-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
VovaII
2>nul - перенаправление ошибок в 0, что бы не светились

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:09 23-05-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALL
Вопрос: Почему такой бесхитростный пакетник
Код:
@ping -n 1 128.0.0.1>nul && IF %errorlevel% == 0 (ECHO OK) ELSE (ECHO No)
Исправно говорит OK (если адрес 127.0.0.1), но никак не хочет говорить No ?
Как заставить??? (надо обязательно одной строкой)

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 19:51 23-05-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
Команда после "&&" выполняется, только если предыдущая команда(до &&) завершилась успешно.

@ping -n 1 128.0.0.1>NUL & IF ERRORLEVEL 1 (ECHO NO) ELSE ECHO OK


Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 20:48 23-05-2007 | Исправлено: igor_andreev, 20:48 23-05-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
С "&&" я лопухнулся - согласен, но почему интересно если тупо заменить моем варианте "&&" на "&" он так и не работает?
Понимаю, что дело в сравнении %errorlevel% == 0 (если это заменить на твой вариант - ERRORLEVEL 1 - то все работает) но разве так, как сравниваю я - НЕЛЬЗЯ???

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 22:09 23-05-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers

Цитата:
но разве так, как сравниваю я - НЕЛЬЗЯ???

C "нормальными" командами - можно. А ping.exe - дура В Windows 2000 она вообще никаких errorlevel не дает.
Пробовал свой вариант не из батника, а в консоли запустить? У меня XP, один раз пишет OK, потом все NO.

Обычно все примеры с ping идут с проверкой IF ERRORLEVEL 1, я так и пишу, чтоб не заморачиваться.
 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 23:33 23-05-2007
find

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
find  
пользуйся переменной %ProgramFiles%

 
спасибо конечно, только это не решение проблемы.
такой путь C:\Progra~1\ просто обязан работать в системе.

Всего записей: 220 | Зарегистр. 27-09-2004 | Отправлено: 02:26 24-05-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru