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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
lsgsoftware

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Батники - это вообще моя любимая тема. Когда я пишу прогу, в которой нужно запускать
внешнее приложение, то я вызываю всегда не EXE-файл, а батник, в котором можно потом не трогая прогу еще чего то дописать - мне очень помогало это всегда.
А вот про xcopy - хорошая штука, много недокументированных возможностей.Я сочинил прогу, которая автоматизирует работу по архивированию, копированию данных(полезна будет для простых юзеров, а может и для сисадминов). А по существу, помимо обвязок - это автоматическое написание батника для запуска xcopy. Посмотреть можно здесь
http://lsgsoftware.narod.ru/copir.html

Всего записей: 2 | Зарегистр. 30-07-2009 | Отправлено: 10:35 01-08-2009
spider91

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плиз как переместить папку включая все подпапки, и возможно ли ето вообще?

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 12:45 02-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spider91
 
Если в пределах одного раздела диска, то просто 'move Folder'
Если на другой раздел, то ее надо скопировать и потом удалить:

Код:
 
@echo off
xcopy /e /i "C:\Folder" "D:\Folder"
rd /s /q "C:\Folder"
 

 
xcopy /? - дополнительные опции

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:30 02-08-2009
spider91

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
На тот же диск . Я пишу - move Folder папка .. - ето не работает. Можно на примере показать как ето делается? И желательно именно переместить папку, так как копирование длится дольше.

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 15:06 02-08-2009
01MDM



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

Цитата:
Я пишу - move Folder папка .. - ето не работает.

 
Ты это делаешь из командной строки или в батнике?  
Не забывай заключать названия папок в кавычки, если есть пробелы. Если названия содержат кирилицу, то сохраняй батник в OEM-кодировке или добавляй команду 'chcp 1251 1>nul'

Код:
 
C:\Documents and Settings\spider91> move C:\Folder "Рабочий Стол\Folder"
 

 

Код:
 
@echo off
chcp 1251 1>nul
move C:\Folder "C:\Documents and Settings\spider91\Рабочий Стол\Folder"
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:07 02-08-2009
spider91

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

Код:
C:\Documents and Settings\spider91> move folder C:\Folder "Рабочий Стол\Folder"  


Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 18:23 02-08-2009
spider91

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

Код:
move /Y "C:\Animations\Animations" "C:\Animations"

 
а в ответ - отказано в доступе.
 
Как с етим боротся?

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 22:49 02-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spider91
У меня ошибок не возникает, но и смысла в этой команде нет, т.к все остается на своих местах.
Если ты хочешь сократить уровень вложенности папок, то наверное лучше с помощью батника:

Код:
 
@echo off
pushd "C:\Animations\Animations"
for /f "tokens=*" %%i in ('dir /b /a') do move "%%i" ..\
popd
rd "C:\Animations\Animations"
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:10 02-08-2009
spider91

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
 
А можно бз батника обойтись? Мне надо через строку чтоб выполнялось. Я пытался сделать так
 

Код:
move /Y "C:\Animations\Animations" ..

 
но так тоже отказаео в доступею

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 23:41 02-08-2009
01MDM



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

Код:
 
C:\> for /f "tokens=*" %i in ('dir /b /a Animation\Animation') do move "%i" Animation
C:\> rd Animation\Animation
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:29 03-08-2009 | Исправлено: 01MDM, 00:31 03-08-2009
spider91

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Не работает, даже батник. Может я не совсем правильно обьяснил что мне надо, так вот у меня есть папка ,допустим, Game\Animations\Animations\куча папок с подпапками и файлыми. А мне надо чтобы ето выглядело так Game\Animations\куча папок с подпапками и файлыми. Можно ли так переместить папки?
 
 
ЗЫ
Ето надо сделать не только на моем компе но и на других юзая при етом командную строку или в крайнем случае батник.

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 10:10 03-08-2009 | Исправлено: spider91, 10:28 03-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spider91
 
Может ты что-то делаешь не правильно? У меня все работает. Запускаешь батник, к примеру с рабочего стола, и он должен все содержимое C:\Animation\Animation переместить на один уровень вверх, а саму папку (уже пустую) удалить.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:45 03-08-2009
spider91

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Все, разобрался. Чтобы все перемещалось надо было чтоб строка работала в C:\Animation\Animation, тоесть cd C:\Animation\Animation. Если она будет работать например на диске C:\ а не в нужной папке то файлы не перемещаются, так как после выполнения
 

Код:
for /f "tokens=*" %i in ('dir /b /a Animation\Animation') do move "%i" Animation  

 
строка выполняет команды move файл или папка  , а не move C:\Animation\Animation\файл или папка.
 
 
Спасибо большое за помощь.

Всего записей: 605 | Зарегистр. 02-02-2009 | Отправлено: 14:28 03-08-2009
Toga2007



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

Всего записей: 1 | Зарегистр. 04-08-2009 | Отправлено: 13:48 05-08-2009
Irenn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток! Кто может подсказать,не работает поиск,с командной строки вообще не могу зайти в поиск, через пуск-включается но не работает (ничего не ищет) что это может быть?

Всего записей: 5 | Зарегистр. 14-01-2009 | Отправлено: 15:55 05-08-2009
HaK1R



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

Код:
 
@echo %userdomain%

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:44 06-08-2009
korsar77

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spider91Как при помощи cmd начать последовательно установку нескольких программ  

Всего записей: 5 | Зарегистр. 05-08-2009 | Отправлено: 16:18 06-08-2009
ScreamWolf



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korsar77
Установку никак, а вот запуск через start /wait proga.exe

Код:
start /wait programma1.exe
start /wait programma2.exe
start /wait programma3.exe
start /wait programma3.exe
..................
 

а вот саму установку контролировать придется тебе...
 
Добавлено:
Прошу помощи...
 
Например есть путь к файлу C:\windows\system32\notepad.exe (заранее не известен, т.е. путь может любой глубены)
как разбить его на части, т е  
  1 - С:
  2 - windows
  3 - system32
  4 - notepad.exe
и при этом необходимо из этого же пути узнать само имя файла (notepad.exe)

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 14:12 07-08-2009 | Исправлено: ScreamWolf, 14:23 07-08-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток
 
Помогите с батником приведённым ниже.
Вся проблема в переменной %RAR%
Путь к rar.exe записывается правильно в файл 1.txt
А как доходит до архивирования не находит файл  
rar.exe и всё тут.
 
Вопрос:
Какую переменную подставить, что-бы началось архивирование?
 
В принципе можно написать путь до rar.exe полностью,
но хотелось бы включить пойск rar.exe.
 
Код
 
SET "RAR=dir "%ProgramFiles%\Rar.exe" /b /s /a"
SET SrcPath1=C:\MENU
SET DestPath=C:\Backup
SET ArhName1=MENU
 
%RAR% u -m5 -dh -as -agYYYY_MM_DD -ilog%DestPath%\Log.txt "%DestPath%\%ArhName1%_.rar" "%SrcPath1%"
 
%RAR% >1.txt

 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 14:51 07-08-2009
01MDM



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

Цитата:
заранее не известен, т.е. путь может любой глубены

Но он существует? Или его надо определять?
 

Цитата:
как разбить его на части, т е  
  1 - С:
  2 - windows
  3 - system32
  4 - notepad.exe
и при этом необходимо из этого же пути узнать само имя файла (notepad.exe)

 
Если путь известен (получен), то:

Код:
 
@echo off
setlocal
 
set "notepad=C:\Windows\System32\notepad.exe"
call:set "%notepad%"
 
echo %disk%
for /f "tokens=2 delims==" %%i in ('set path_') do echo %%i
echo %filename%
goto:eof
 
:set
set "filename=%~nx1"
set "disk=%~d1"
 
:path
set /a tok+=1
for /f "tokens=%tok% delims=\" %%i in ("%~p1") do (
   if not "%%i"=="" (
       set "path_%tok%=%%i"
       goto:path
   ) else (
       goto:eof
   )
)

 
переменные %path_1% - %path_n% определяют каждый элемент пути к notepad.exe
 
 
Добавлено:
Cosmogor
И правильно, что не находит rar.exe

Код:
 
@echo off
 
for /f "tokens=*" %%i in ('dir "%ProgramFiles%\Rar.exe" /b /s /a') do SET "RAR=%%i"
 
SET SrcPath1=C:\MENU
SET DestPath=C:\Backup
SET ArhName1=MENU
 
"%RAR%" u -m5 -dh -as -agYYYY_MM_DD -ilog%DestPath%\Log.txt "%DestPath%\%ArhName1%_.rar" "%SrcPath1%"
 
echo %RAR% 1>1.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:54 07-08-2009 | Исправлено: 01MDM, 16:08 07-08-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru