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

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

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

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
Maza_Faka



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

Цитата:
Прошу помощи в написании батника

Рабочий пример для WinXP, Win98 под рукой нет:

Код:
 
@Echo Off
 
If Exist c:\windows\dkdir.txt (
   Call :_Parsing c:\windows\dkdir.txt
   GoTo :EOF
)
 
If Exist C:\dkdir.txt (
   Call :_Parsing C:\dkdir.txt & GoTo :EOF
   GoTo :EOF
)
 
Echo "бла-бла переустановите игру))"
Pause
GoTo :EOF
 
:_Parsing
For /F "Tokens=*" %%A In (%1) Do 7z.exe e filename.zip -o"%%A"
 

 
Добавлено:
Xma111

Цитата:
Возможно ли батником сделать такую вещь

Попробуйте так:

Код:
 
@Echo Off
 
For /F %%A In (db.cfg) Do Copy e:\%%A\*.*
 

 
Добавлено:
artemk

Цитата:
как запустить батник от имени др пользователя


Код:
 
RUNAS /?
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:20 17-04-2009
guru431

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

Цитата:
Только для локальных пользователей:  
Код:  
wmic useraccount where (localaccount="true" AND status="OK") get Name /value 1>users.txt  

Тоже не работает - показывается только первый пользователь.
Вод ход процесса:

Цитата:
D:\>wmic useraccount where (localaccount="true" AND status="OK") get Name /value 1>users.txt
D:\>for /F "tokens=2* delims==" %i in ('type users.txt') do call:set "%i"
D:\>call:set "ASPNET"
D:\>set /a cnt+=1
D:\>set "user_1=ASPNET"

И остается файл users.txt с таким содержанием:

Цитата:
Name=ASPNET
 
 
Name=IUSR_COMP
 
 
Name=IWAM_COMP
 
 
Name=admin
 
 
Name=user
 

Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 13:25 17-04-2009
TruLander100

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
Спасибо работает, только вот считывает он с этого файла строчку вместе с кавычками[],
сделал 2 строчку в этом файле без кавычек он ее прочел и распаковал. Можно какнибудь сделать чтоб он читал или только 2 строчку, или первую но без кавычек[]?
Еще вопрос можноли использовать cmd.exe от другой винды? будет он работать?

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 13:48 17-04-2009 | Исправлено: TruLander100, 14:00 17-04-2009
Maza_Faka



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

Цитата:
только вот считывает он с этого файла строчку вместе с кавычками

Пример файла в студию.
 

Цитата:
можноли использовать cmd.exe от другой винды?

От какой и куда?

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:08 17-04-2009
TruLander100

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1 пример файла           [c:\555555\]
2 пример файла           [c:\555555\]
                                   c:\5555555\
 
cmd например от xp использовать на win98
 
кста батник проверил на 98 не работает
наверно он не понимает команд :for
пишет:  
имя команды или файла указано не верно
имя команды или файла указано не верно
метка не найдена (наверно про Goto EOF)
 
Добавлено:
Пробовал подставлять файл в windows\ и в корень
в 1 случае пишет 1 раз имя команды или файла указано не верно
в другом случае пишет 2раза имя команды или файла указано не верно
                                             имя команды или файла указано не верно

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 14:14 17-04-2009 | Исправлено: TruLander100, 14:18 17-04-2009
01MDM



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

Цитата:
Тоже не работает - показывается только первый пользователь.  

 
Очень странно, что у тебя не работает. В коде ошибок нет.
Строка

Код:
 
set user_
 

Выводит все определенные в ходе выполнения переменные:

Код:
 
User_1=Администратор
User_2=Иванов
User_3=Петров
User_4=Сидоров
 

Без служебных учетных записей.
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:21 17-04-2009
Xma111

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

Цитата:
Maza_Faka

 
 

Цитата:
Попробуйте так:  
 
Код:  
@Echo Off  
 
For /F %%A In (db.cfg) Do Copy e:\%%A\*.*  
 

 
Благодарю. Попробую.

Всего записей: 6 | Зарегистр. 16-04-2009 | Отправлено: 15:57 17-04-2009
Maza_Faka



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

Цитата:
cmd например от xp использовать на win98

Нет, нельзя.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 16:08 17-04-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
guru431
 
Еще вариант, через реестр:

Код:
 
@echo off
setlocal
 
set regpath="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
 
for /f "tokens=*" %%i in ('reg query %regpath% ^| findstr "S-1-5-2[0-9]-.*"') do (
    for /f "tokens=*" %%i in ('reg query "%%i"^| findstr "ProfileImagePath"') do call:set "%%i"
)
 
set user_
goto:eof
 
:set
set /a tok+=1
for /f "tokens=%tok% delims=\" %%i in (%1) do if not "%%i"=="" goto:set
set /a tok-=1
set /a cnt+=1
for /f "tokens=%tok%* delims=\" %%i in (%1) do set user_%cnt%=%%i %%j
set "tok="
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:13 17-04-2009
Xma111

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

Цитата:
 
Цитата:Maza_Faka  
 
 
 
 
Цитата:Попробуйте так:  
 
Код:  
@Echo Off  
   
For /F %%A In (db.cfg) Do Copy e:\%%A\*.*  
   
 
 
Благодарю. Попробую.  

 
Работает =))) Пасиба.
А еще нюанс один, как в батнике прописать такую вещь:
 
На пхп выглядит так  
if($x==bibi)
{
Copy e:\bibi_old\*.*  
}
 
Где $x = тому, что прочитал из файла "%%A".
 
Сорри за не четкую мысль, надеюсь хоть немного понятно мою билиберду))))

Всего записей: 6 | Зарегистр. 16-04-2009 | Отправлено: 17:27 17-04-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Ребята, помогите, тут загвостка с символом ":", его нужно как-то автоматически удвоить.
В файле одна строка, путь к папке, в ней нужно удвоить символ  ":", что бы отдать на обработку gsar`у
Спасибо.
 

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 20:29 17-04-2009
01MDM



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

Код:
 
@echo off
 
set oldstring=C:\Folder
set newstring=D:\Folder
 
gsar -s%oldstring::=::% -r%newstring::=::% -o some.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:29 17-04-2009
XXXXL



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

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 00:53 18-04-2009
Maza_Faka



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

Цитата:
прописать такую вещь


Код:
 
For /F %%A In (db.cfg) Do If /I "%%A"=="bibi" Copy e:\%%A\*.*
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:04 18-04-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как можно удалить папку со всем содержимым ?
 
сейчас она находится здесь
C:\Documents and Settings\lik\My Documents\ConsUpdate\TempFiles\
 
а у другого юзера может быть другой путь, но точно в "Мои документы"
 
и возможно-ли присвоить аттрибуты "скрытый" к папке ConsUpdate ?
 
всё это надо сделать через батник !

Всего записей: 1497 | Зарегистр. 28-10-2007 | Отправлено: 16:47 18-04-2009
Xma111

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

Цитата:
Maza_Faka
 
 
Код:  
For /F %%A In (db.cfg) Do If /I "%%A"=="bibi" Copy e:\%%A\*.*  

 
Спасибо большое. А в одну строку можно писать несколько условий if ?

Всего записей: 6 | Зарегистр. 16-04-2009 | Отправлено: 18:38 18-04-2009
NEITRYNO

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал файл off.cmd в него прописал C:\Documents and Settings\ОЛЯ>netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0
 
Запускаю, на мгновенье вылетает окошко черное (как у командной строки), но фишка не срабатывает.  
Если запустить Командную строку и там прописать netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0    то все работает.
 
Что нуно прописать чтоб cmd.exe запускалси, выполнил команду, и закрылси ???

Всего записей: 218 | Зарегистр. 25-04-2008 | Отправлено: 21:09 18-04-2009
01MDM



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

Код:
 
@echo off
chcp 1251 1>nul
 
netsh interface ip set address name="Подключение по локальной сети" gateway=190.160.1.1 gwmetric=0  
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:45 18-04-2009
TifonT

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если кто может помогите в данной ситуации.
Есть ПК под Windows XP
Надо как-то через сеть узнавать свободное место на расшаренном диске. По аналогии как это делает винда если подключить этот диск как сетевой.
Если такое сделать очень сложно, то хотя бы чтобы эта информация записывалась в файл на том же компьютере.

Всего записей: 3 | Зарегистр. 04-05-2008 | Отправлено: 00:54 19-04-2009 | Исправлено: TifonT, 00:55 19-04-2009
Maza_Faka



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

Цитата:
удалить папку со всем содержимым


Код:
 
RD /S /Q "%USERPROFILE%\My Documents\ConsUpdate\TempFiles"
 

 

Цитата:
присвоить аттрибуты "скрытый" к папке ConsUpdate


Код:
 
Attrib +H "%USERPROFILE%\My Documents\ConsUpdate"
 

 
Добавлено:
Xma111

Цитата:
А в одну строку можно писать несколько условий if

Можно.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:18 19-04-2009 | Исправлено: Maza_Faka, 08:20 19-04-2009
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru