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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vista2006
Поставь левый разделитель что бы строка полность считывалась в переменную и откусывай от неё кусок СЕТом за исключением последних N-символов

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:50 24-09-2007
Smitis



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

Цитата:
Объясните, что может выполнять эта часть кода.

Первая команда устанавливает errorlevel в 1.
Вторая включает режим enabledelayedexpansion (отложенное расширение переменных среды, читай "мануалы"!). Если выполнилась удачно, errorlevel будет устновлен в 0. В 2000, кажется, была ошибка в установке этой командой errorlevel. Поэтому нужна первая команда. Если вторая команда не выполниться (расширения запрещены), errorlevel останется в 1.
Третья команда проверит правильность включения enabledelayedexpansion и выдаст сообщение.
И вообще, блин, если ввести setlocal /? будет выдано всё более подробно, чем я тут распинаюсь.


----------
Разум когда-нибудь победит

Всего записей: 2350 | Зарегистр. 09-02-2003 | Отправлено: 15:39 24-09-2007
Maza Faka



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

Код:
 
@echo off
chcp 1251> nul
for /f "tokens=1* delims=-" %%a in (test.txt) do call :sub "%%a"
goto :eof
 
:sub
set var=%~1
set var=%var:~0,-1%
echo %var%>> out.txt
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:42 24-09-2007
vista2006

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vista2006  
Так?  
 
Код:
@echo off  
chcp 1251> nul  
for /f "tokens=1* delims=-" %%a in (test.txt) do call :sub "%%a"  
goto :eof  
 
:sub  
set var=%~1  
set var=%var:~0,-1%  
echo %var%>> out.txt  
 
 
Нет, так всё равно файл целиком выводит.. Есть ещё варианты?
 
Добавлено:

Цитата:
vista2006  
Поставь левый разделитель что бы строка полность считывалась в переменную и откусывай от неё кусок СЕТом за исключением последних N-символов

 
А можно код? Сам я ни в жизнь ни напишу!

Всего записей: 10 | Зарегистр. 27-09-2006 | Отправлено: 17:49 24-09-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vista2006
Я проверял, у меня выводит строки до тире, может
Цитата:
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:26 24-09-2007
vista2006

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

Цитата:
vista2006  
Я проверял, у меня выводит строки до тире

 
Да, всё получилось!! Огромное человеческое спасибо
Только тэг ,-1%  оказался лишний. Он последний символ каждого слова съедал.
Если его убираешь, то всё работает ОК

Всего записей: 10 | Зарегистр. 27-09-2006 | Отправлено: 18:58 24-09-2007
vista2006

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача:
Надо вытащить разрешения Security на все share-ресурсы с удалённого сервера.
Я делаю так:
Сначала вывожу список шаров в файл
for /f "usebackq tokens=* skip=7" %%i in (`net view \\Имя_сервера`) do @echo %%i>>1.txt
Получается файл с текстом:
 
Название шары_c_одним пробелом    disk
Название шары с несколькими пробелами          disk
Название_шары_без_пробелов     disk
The command completed successfully.
 
Далее пытаюсь из этого файла вынуть название Шаров без мусора, чтобы потом засунуть в команду Subinacl для снятия разрешений, но ничего не получается
for /f  "tokens=*" %%i in (1.txt) do call :begin "%%i"
goto exit
:begin
set var=%~1
set var=%var:~0,-1%
echo %var%
:exit
 
Подскажите пожалуйста что не так.  
P.S. А может быть есть более простое решение моей задачи? Например, чтоба net view сразу без мусора шары вынимал...
 

Всего записей: 10 | Зарегистр. 27-09-2006 | Отправлено: 11:46 25-09-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vista2006
У меня русская Винда, соответственно код выглядит так:

Код:
 
@echo off
for /f "skip=7" %%a in (
'net view \\ws6 ^| find /i /v "команда"') do echo %%a>> 1.txt
 

просто немного переделай батник.
 
Добавлено:
vista2006
Поторопился и не сразу понял задачу, в общем можно так:

Код:
 
@echo off
for /f "skip=7 delims=" %%a in (
 'net view \\ws6 ^| find /i /v "команда"') do (
 for %%b in (%%a) do  echo %%b | find /i "Диск">nul && echo.>> out.txt || echo | set /p=%%b>> out.txt
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:18 25-09-2007
vista2006

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

Цитата:
@echo off  
for /f "skip=7 delims=" %%a in (  


Цитата:
'net view \\ws6 ^| find /i /v "команда"')

 
А что вставлять вместо "Команда" ?

Всего записей: 10 | Зарегистр. 27-09-2006 | Отправлено: 16:16 25-09-2007
Maza Faka



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

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 16:29 25-09-2007
vista2006

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не хочет выполняться -чего то не хватает...
Пробелы убрал

Всего записей: 10 | Зарегистр. 27-09-2006 | Отправлено: 16:55 25-09-2007
vv07



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые пользователи!Если вопрос не к месту,заранее прошу извинить.У меня следующая проблема.Система перестала(по каким причинам не знаю)распознавать расширение .bat.Батники перестали запускаться.Подскажите в чем может быть проблема и как это исправить.Перставлять винду в настоящее время нет возможности.Заранее благодарен.

Всего записей: 4021 | Зарегистр. 04-07-2006 | Отправлено: 03:28 27-09-2007 | Исправлено: vv07, 03:29 27-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vv07
Проблема может быть в реестре. Исправить можно создав .reg файл следующего содержания:

Код:
 
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\.bat]
@="batfile"
 
[HKEY_CLASSES_ROOT\.bat\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
 
[HKEY_CLASSES_ROOT\batfile]
@="MS-DOS Batch File"
"EditFlags"=hex:30,04,00,00
 
[HKEY_CLASSES_ROOT\batfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,35,\
  00,33,00,00,00
 
[HKEY_CLASSES_ROOT\batfile\shell]
 
[HKEY_CLASSES_ROOT\batfile\shell\edit]
 
[HKEY_CLASSES_ROOT\batfile\shell\edit\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00
 
[HKEY_CLASSES_ROOT\batfile\shell\open]
"EditFlags"=hex:00,00,00,00
 
[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %*"
 
[HKEY_CLASSES_ROOT\batfile\shell\print]
 
[HKEY_CLASSES_ROOT\batfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00
 
[HKEY_CLASSES_ROOT\batfile\shellex]
 
[HKEY_CLASSES_ROOT\batfile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
 
[HKEY_CLASSES_ROOT\batfile\shellex\PropertySheetHandlers]
 
[HKEY_CLASSES_ROOT\batfile\shellex\PropertySheetHandlers\PifProps]
@="{86F19A00-42A0-1069-A2E9-08002B30309D}"
 
[HKEY_CLASSES_ROOT\batfile\shellex\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"
 
 
 
и импортировав его в реестр.
 
P.S. IMHO
 

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 03:36 27-09-2007
vv07



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Спасибо Уважаемый!Не помогло.Может еще кто,что подскажет.

Всего записей: 4021 | Зарегистр. 04-07-2006 | Отправлено: 05:06 27-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vv07
Как вы (ты?) запускаете батники? Из эксплорера? Если да, попробуйте запустить их из командной строки (Start->Run->cmd.exe)

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

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



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
В Тотале запускаю сеанс дос.Я вообще практически все делаю через командер.

Всего записей: 4021 | Зарегистр. 04-07-2006 | Отправлено: 05:20 27-09-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vv07
Что в переменной окружения PATHEXT

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 08:01 27-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vv07
Какая ошибка выводится в ответ на попытку запустить батник?

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 08:06 27-09-2007
vv07



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обычная ошибка.В Тотале приложение не может быть открыто.В Винде пишет неизвестное приложение,поиск в инете или вручную.Обидно еще вот что.До внесения изменения в реестр,я батник хоть через дос запускал.А сейчас и в командной не запускаеться
Выручайте друзья.Мне винду никак переставлять щас нельзя.

Всего записей: 4021 | Зарегистр. 04-07-2006 | Отправлено: 08:16 27-09-2007
Elroir



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

Цитата:
До внесения изменения в реестр,я батник хоть через дос запускал.А сейчас и в командной не запускаеться  

Используй откат системы для восстановления статусa-кво.
 
Что значит "через дос"? Когда я спрашивал, как запускаются батники - ответ был "В Тотале запускаю сеанс дос". Чем отличается первый от второго?
 
 
Добавлено:
А .cmd файлы тоже не запускаются?

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 08:33 27-09-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru