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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
december2010
http://forum.ru-board.com/topic.cgi?forum=2&topic=2922&start=16&limit=1
или

Код:
for /f "tokens=*" %%i in ('type G:\scripts\test\lst.txt') do 0>nul 1>>G:\scripts\test\lst2.txt set /p="%%i:"
pause

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:42 27-02-2010 | Исправлено: mugil_cephalus, 16:36 27-02-2010
sukanegoni



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. А возможно ли (в принципе) работать с DirectX (Direct3D) - рендерить графику, вызывать функции библиотеки из батника без каких-либо посторонних программ?
 
Извиняюсь за ник... Долго не мог зарегистрироваться - а потом на тебе - когда не надо и прошло... А теперь срочно спросить захотелось... Ответьте пожалуйста, очень волнует вопрос больное воображение...

Всего записей: 273 | Зарегистр. 23-11-2009 | Отправлено: 01:48 28-02-2010
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sukanegoni
Нет, без сторонних утилит нельзя.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:26 28-02-2010
V2driver



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вобщем нужно реализовать такой батник - по массовому переименовыванию файлов...
Поясню: вобщем имеется папка а вней wav файлы, но у них перед названием есть номер.. тоесть вот пример:
1 EN_TUT_EVENT2_NEW_01_PC.wav
2 RU_TAK_ACHIEVE4_02C.wav
3 RU_TOD_ACHIEVE2_02B.wav
4 RU_CLY_GOESTOLAST_01C.wav
И так у меня доходит нумерация до 2138.
Как видно нумерация идёт по порядку на название кажого файла разное..
Мне нужен такой батник который бы удалял номер перед названием!!!
Тоесть чтобы получилось так:
EN_TUT_EVENT2_NEW_01_PC.wav
RU_TAK_ACHIEVE4_02C.wav
RU_TOD_ACHIEVE2_02B.wav
RU_CLY_GOESTOLAST_01C.wav
Помогите пожалуйста, я уже незнаю где копать, пол инета перерыл((
Спасибо

Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 14:39 28-02-2010 | Исправлено: V2driver, 14:41 28-02-2010
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V2driver
Проверить не могу, не под виндоус в данный момент. Попробуй:

Код:
 
@echo off
for /f "tokens=1,2" %%i in ('dir /b *.wav') do ren "%%i %%j" "%%j"
 

 
Запускать из папки с wav-файлами.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:07 28-02-2010
V2driver



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Сума сойти!! у меня нет слов!!!
Всё получилос!! а стоко парился=((
Спасибо огромнейшее!!!!
Жаль здесь нельзя +сики ставить(( а так бы заплюсовал досмерит))
Спасибо большущее!

Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 17:07 28-02-2010
december2010

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

Цитата:
december2010
http://forum.ru-board.com/topic.cgi?forum=2&topic=2922&start=16&limit=1 [?]
или
 
Код:
for /f "tokens=*" %%i in ('type G:\scripts\test\lst.txt') do 0>nul 1>>G:\scripts\test\lst2.txt set /p="%%i:"
pause  

 
Спасибо! все отлично сработало!
 
Добавлено:
Чето не разберусь как записать символы "<" и ">" через echo в фаил.

Всего записей: 11 | Зарегистр. 13-02-2010 | Отправлено: 19:21 28-02-2010
01MDM



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

Цитата:
 
Чето не разберусь как записать символы "<" и ">" через echo в фаил.
 

Заэкранировать:

Код:
 
1>file.txt (
    echo ^<
    echo ^>
)
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:43 28-02-2010
december2010

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

Цитата:
01MDM

Точно. Просто забыл. )) Спасибо.

Всего записей: 11 | Зарегистр. 13-02-2010 | Отправлено: 19:51 28-02-2010
V2driver



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И еще вопросик:
Я всё про ту же кучу вавок)
Мне бы все имена всех 2138 вавов вбить в txt документ)
Неподскажите что в батнике наклацать?? 01MDM

Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 00:03 01-03-2010
v1s

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V2driver
Если вопрос не только к 01MDM, то
cmd /u /c for %%i in (*.wav) do @echo %%~ni >> list.txt
(без расширений), либо
cmd /u /c for %%i in (*.wav) do @echo %%i >> list.txt
(с расширениями).
 
Дополню: часть "cmd /u /c ", в принципе, необязательна - просто чтоб вывод в юникоде был.

Всего записей: 270 | Зарегистр. 12-02-2006 | Отправлено: 05:47 01-03-2010 | Исправлено: v1s, 06:13 01-03-2010
ScreamWolf



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mugil_cephalus
AkelPad не глючит (проверено в разнообразных редакторах)... самое интересное, что в какой бы не был кодировке батник, screnc.exe в любых случаях получает кривые символы вместо кириллицы.
 
В случае если батник, файл для кодирования и screnc.exe положить в корень диска, ответ о выполнении кодирования остается прежним
 
Вот батник:

Код:
@echo off
screnc -f 1.txt
pause
 

Текстовый файл в DOS-кодировке (пробовал и в WIN-кодировке)

Код:
;ver
ver=1.0
chekup=no
;component
fciv
screnc
shortcut
taskkill
tasklist
;url
url=n/a

 
Теперь ответ батника

Цитата:
Scripting encoder object ("Scripting.Encoder") failed on c:\1.txt

При присутствии в адресе русских букв, ответ тот же...

Цитата:
Scripting encoder object ("Scripting.Encoder") failed on c:\Ёєёёъшщ\1.txt

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 17:19 01-03-2010
gis170

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не силен в написании батников, поэтому прошу помочь.
Суть такова: В Windows 7 при запуске от имени администратора срабатывает смд такого содержания:
slmgr.vbs /skms 127.0.0.1  
start %WinDir%\1.exe
slmgr.vbs /ato  
 
При этом на экране появляеться окно смд и вопрос о задании 127.0.0.1 с необходимостью ответа . Открываеться окно
C:\Windows\1.exe, которое потом закрываю вручную.в конце извещении о завершении процесса которое ждет нажатия кнопки.
Как паписать так чтобы это дело срабатывало в фоновом режиме.Что бы этот смд можно было запускать или через планировщик, или через групповые политики в сценариях завершения\ запуска работы?
 

Всего записей: 66 | Зарегистр. 06-10-2009 | Отправлено: 18:01 01-03-2010 | Исправлено: gis170, 18:06 01-03-2010
ScreamWolf



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gis170
не пробовал в конце батника команду exit.
А по поводу скрытого запуска см в шапке
 
А вот те интересный батничек - думаю разберешся

Код:
@echo off
setlocal enabledelayedexpansion
echo Если Вы не укажите имя батника, то оно сгенерируется автоматически!
set /p bat=Введите имя создаваемого батника (можно без ".bat"):
set /p hide=0 - для запуска в скрытом режиме (по-умолчанию 1)[0/1]:
if "%hide%_"=="_" set hide=1
if "%bat%_"=="_" set bat=%random%%random%%random%%random%
set pathbat=%windir%\system32\%bat%.bat
 
::создаем батник в ..\system32\
echo.ping localhost >%pathbat%
echo.pause >>%pathbat%
call :SeeProcess
 
::создаем скриптик для запуска созданного батника
echo.var WSHShell = WScript.CreateObject("WScript.Shell");>%temp%\%bat%.js
echo.WSHShell.Run("%bat%.bat",%hide%);>>%temp%\%bat%.js
cscript //nologo "%temp%\%bat%.js"
del /q /f "%temp%\%bat%.js" >nul
cls
 
echo Запусщен батник по адресу %pathbat%
echo.
echo Нажать любую клавишу что бы убить запусщеный батник и удалить
pause >nul
call :KillProcess
del /q /f "%pathbat%" >nul
cls
 
echo Процасс убит, батник удален!
pause >nul
goto :EOF
 
:SeeProcess
::узнаем PIDы всех запущеных CMD.EXE
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
  set "PROCESSOR_PID=!PROCESSOR_PID!,%%i"
)
set "PROCESSOR_PID=%PROCESSOR_PID:~1%"
goto :EOF
 
:KillProcess
::убиваем по новому PIDу кроме найденых заранее...
for /f "tokens=2" %%i in ('tasklist ^| findstr /b cmd.exe') do (
  set "kill=1"
  for /f "tokens=*" %%a in ('set PROCESSOR_PID ^| findstr "%%i"') do (
    set "kill=0"
  )
  if !kill!==1 (taskkill /PID %%i 1>nul 2>&1)
)
goto :EOF

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 18:14 01-03-2010 | Исправлено: ScreamWolf, 18:17 01-03-2010
gis170

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exit не дает результата.
 
Кое как сляпал на примере других:
 
@echo off
color 0a
rem * По окончании работы cmd - текст консоли изменит цвет с зеленого на cиний
echo.
echo ********************************
echo.                                                                                
"%SYSTEMROOT%\System32\cscript.exe" "%SYSTEMROOT%\System32\slmgr.vbs" -skms   127.0.0.1
start %WinDir%\1.exe  
"%SYSTEMROOT%\System32\cscript.exe" "%SYSTEMROOT%\System32\slmgr.vbs" -ato
TASKKILL /IM Keygen.exe  
echo.
date /t    
time /t
echo.
echo ********************************
echo.                                                                                  
color 0b
echo Press any key for exit..
pause>nul
 
 Теперь вот в чем : строку TASKKILL /IM 1.exe  оставить такой же или добавить  /Т  что бы получилось  
TASKKILL /IM Keygen.exe  /Т  

Всего записей: 66 | Зарегистр. 06-10-2009 | Отправлено: 19:38 01-03-2010 | Исправлено: gis170, 00:21 02-03-2010
v1s

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

Цитата:
Теперь вот в чем : строку TASKKILL /IM 1.exe  оставить такой же или добавить  /Т  что бы получилось  
TASKKILL /IM Keygen.exe  /Т

Что делает параметр /T? С ним завершен будет не только указанный процесс, но и все, тем процессом порожденные. Если Keygen.exe сам никаких процессов не запускает, можно хоть использовать /T, хоть не использовать - разницы не будет.
 
PS: Зачем столько украшательств для работы в фоновом режиме?

Всего записей: 270 | Зарегистр. 12-02-2006 | Отправлено: 03:56 02-03-2010
gis170

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

Цитата:
PS: Зачем столько украшательств для работы в фоновом режиме?

 Мне в конкретном случае нужно в фоне, а товарищ хочет использовать вручную. Типа решил сляпать универсальное.
И спасибо всем.

Всего записей: 66 | Зарегистр. 06-10-2009 | Отправлено: 08:23 02-03-2010 | Исправлено: gis170, 09:47 02-03-2010
aguch

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые гуру - подскажите
в батничке:
 
set b=%USERNAME%_______
SET a=%b:~0,8%
echo xcopy "________.*" "C:\Documents and Settings\%USERNAME%\Application Data\Kodeks\Kodeks\%a%.*" /Y
 
можно ли сразу задать переменную а (в одну строчку)?

Всего записей: 134 | Зарегистр. 09-10-2002 | Отправлено: 15:24 02-03-2010
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача.
В папке множество вложенных папок, нужно вместо этих папок создать файлы с названием папок.
Например:
папка "DFG" -> файл должен быть "DFG"  
(т.е. точно также как и папка, без какого либо расширения)
ну а сами папки я так понимаю придётся удалить, т.к. файл и папка с одним именем не получится
 
Помогите решить!!!

Всего записей: 1468 | Зарегистр. 28-10-2007 | Отправлено: 08:08 03-03-2010
aguch

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vitrzn
первое что пришло на ум:
 
for /f "tokens=*" %%i in ('dir /b /AD') do (
rd %%i /S /Q
echo off > %%i
)

Всего записей: 134 | Зарегистр. 09-10-2002 | Отправлено: 11:17 03-03-2010 | Исправлено: aguch, 11:20 03-03-2010
   

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