Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: Mosl
Дата сообщения: 26.10.2009 13:44
01MDM
От вас узнал о большов количестве полезных "утелит" (Nircmd, hstart, wget, sleep, Cmdow) для написания скриптов. Может стоить в шапку добавить ссылки на все подобные утилиты с кратким описанием?
Автор: tempsend
Дата сообщения: 26.10.2009 17:36
Доброго времени суток, а не подскажите пример или как реализовать следующее:
- есть папка с целой кучей файлов с разными расширениями. Хотелось бы разложить эти файлы в целевые папки, например картинки ( .jpg,.gif,tiff и т.д.) в папку "pictures" документы ( .doc, .pdf, .xls и т.д.) в папку "docs" и т.д. Заранее спаибо за посказку.
Автор: Kiev78
Дата сообщения: 26.10.2009 19:28

Цитата:
как реализовать следующее:

for /f %%i in ("*.jpg") do move %%i "pictures\%%i"
Что-то типа такого (почитай справку по командам for и move).
Автор: BorlandIMHO
Дата сообщения: 26.10.2009 19:47
tempsend
Где-то так:
sorter.cmd
Код: SET SOURCEFOLDER=c:\downloads
SET PICSFOLDER=c:\Pictures
SET DOCSFOLDER=c:\Documents
FOR /R "%SOURCEFOLDER%" %%N in (*.jpeg *.jpg *.gif *.tiff *.tif *.psd) DO move "%%N" "%PICSFOLDER%"
FOR /R "%SOURCEFOLDER%" %%N in (*.doc *.docx *.xls *.xlsx *.ppt *.pdf) DO move "%%N" "%DOCSFOLDER%"
Автор: Mosl
Дата сообщения: 26.10.2009 19:49
при выполнении hstart /NOCONSOLE "C:\1.cmd" и nircmd.exe execmd C:\1.cmd
Условия прописаные в 1.cmd - не саблюдаются!
Как оказалось они не могли найти wget - решил эту проблему скинув wget.exe в деректорию с 1.cmd. После этого hstart /NOCONSOLE "C:\1.cmd" стал отробатывать, nircmd.exe execmd C:\1.cmd находит wget.exe, но условие не выполняет. Скорей всего тут опять что-то с путем к папке запуска. Что и как подправить что бы все начало коректно отробатывать?


Код: @echo off
pushd "%~dp0"

wget -t 1 ya.ru
if not exist index.html (
rasphone.exe -h "Beeline"
rasphone.exe -d "Beeline"
)
2>nul del index.html
Автор: 01MDM
Дата сообщения: 27.10.2009 10:40
Mosl
Я так понял, что wget ничего не помнит из предыдущих команд батника и ориентируется только на свою пускалку, в данном случае hstart или nircmd, рядом с ними и сохраняет index.html. Если пускается с ярлыка, то надо указывать рабочую папку (папку где батник).

Добавлено:
Или добавить к hstart параметр "/D=C:\путь\к\1.cmd"

Так index.html сохранился рядом с батником:

Код:
C:\Users\mdm\BIN\Hstart\hstart.exe /noconsole /D="C:\Users\mdm\Desktop" "C:\Users\mdm\Desktop\1.cmd"
Автор: decrups
Дата сообщения: 27.10.2009 13:58
Здрасте всем !
Требуется написать bat файл чтоб он добовлял галочку "Разрешить удаленный доступ к этому компу" во вкладке "Удаленные сеансы" в свойствах Мой компбютер.
Во как .
С чего начать? где эта вкладка "Удаленные сеансы" вообще лежит ?
Кто-нибудь знает?Помогите!!!
Автор: arestarh1986
Дата сообщения: 27.10.2009 18:58
Здравствуйте!
Необходимо создать батник, чтоб:
текст из файла 1.txt, начиная со строки с текстом xxxxx и до конца файла, копировался в файл 2.txt.
Автор: 01MDM
Дата сообщения: 27.10.2009 23:33
arestarh1986

Код:
@echo off
setlocal

for /f "tokens=1 delims=:" %%i in ('findstr /b /n "xxxxxx" 1.txt') do set /a skip=%%i-1
1>2.txt more +%skip% 1.txt
Автор: arestarh1986
Дата сообщения: 28.10.2009 00:21
01MDM
Спасибо!
Автор: sv78
Дата сообщения: 28.10.2009 12:24
Подскажите, пожалуйста.

Есть файл password.txt, в котором хранятся пароли. Пишу скрипт, который пробегает по всем rar-архивам в папке и пытается их разархивировать, перебирая пароли из password.txt

Написал такой скрипт. Но не знаю, как прервать внутренний цикл, когда пароль для текущего файла найден успешно?

FOR %%f IN (*.rar) DO (for /f "eol=; tokens=1" %%i in (password.txt) do rar e -o- -inul -p%%i %%f && [досрочно выйти в первый цикл] )

Аналога команды break в cmd вроде нет. Через goto тоже не вижу как сделать.
Подскажите!
Автор: 01MDM
Дата сообщения: 28.10.2009 13:38
sv78

Цитата:
досрочно выйти в первый цикл

Надо второй цикл вынести за пределы первого:

Код:
@echo off

FOR %%f IN (*.rar) DO call:pass "%%f"
goto:eof

:pass
for /f "eol=; tokens=1" %%i in (password.txt) do (
rar e -o- -inul -p%%i %1 && goto:eof
)
Автор: sv78
Дата сообщения: 28.10.2009 14:37
01MDM

Спасибо! Все прекрасно работает!
Автор: easy_y
Дата сообщения: 29.10.2009 19:59
А в фаре можно использовать cd?
Например нужно часто попадать в каталог d:\...\run
cd "d:\...\run" не хочет работать)).
Например cd d: вроде срабатывает (видно что был переход на диск D) но потом все равно происходит возврат в каталог, который был в панели менеджера

Автор: plavrovi4
Дата сообщения: 29.10.2009 20:40
вот батник первая часть работает на ура а вторая незапускается может где ошибка подскажите мозгов чет нехватает у меня

@echo off
cls
:loop
echo (%date% %time%) Starting SRCDS
start /wait D:\srcds.exe -console -nosteam -game cstrike -nomaster -insecure -tickrate 100 +fps_max 600 -maxplayers 20 -port 27020 +sv_lan 1
echo (%date% %time%) Restarting SRCDS
goto loop

:loop1
echo (%date% %time%) Starting SRCDS1
start /wait E:\srcds.exe -console -nosteam -game cstrike -nomaster -insecure -tickrate 100 +fps_max 600 -maxplayers 20 -port 27021 +sv_lan 1
echo (%date% %time%) Restarting SRCDS1
goto loop1 (вот это начиная с loop1 не запускается как сделать)
если отдельные батники делать все пучком но уменя также и 5 окон открывается как сделать чтоб все в одном было
Автор: easy_y
Дата сообщения: 29.10.2009 22:35
plavrovi4
Непонятно, что тебе нужно?
Чтобы одновременно были запущены сервера с D и с E или чтобы после вылета запущенного с D запускался с E а потом обратно?
Автор: plavrovi4
Дата сообщения: 29.10.2009 23:02
Мне нужно чтобы одновременно запускались D и E и при краше независимо друг от друга перезапускались т.е допустим севрера запустились и работают норм вдруг севрер E вылетает и сам себя перезапускает вот так. яж написал что по отдельности они отрабатывают классно но при объединении в один код работает только loop а loop1 непашет ух вроде все.
Автор: easy_y
Дата сообщения: 29.10.2009 23:43
Тогда похоже что ничего не получится. Следующая команда не запустится пока не завершится предыдущая. Но после завершения предыдущей тебе нужно выполнить не следующую а предыдущую.
Автор: plavrovi4
Дата сообщения: 30.10.2009 09:21
Тогда что получается мне надо делать на 5 серверов 5 батников и поотдельности их запускать должен же быть выход может какиенибудь хитрые команды пожалуста помогите я уже делал 5 батников помимо 5 окон батников запустятся еще 5 окон консоли самих серверов а там начинается такая путаница ребят ну очень нужно заранее благодарю.
Автор: Kosmos_9ball_crash
Дата сообщения: 02.11.2009 16:01
всё сам сделал...
хочешь чтобы было хорошо - сделай сам
Автор: ALEX_39
Дата сообщения: 03.11.2009 14:14
Через GPO пытался внедрить батник для предоставления доступа группе пользователей к папке, cacls.exe "[ProgramFilesFolder]Spark" /E /G Users:F, , соответсвенно разместил его в сценарии входа. В итоге доступ нужным пользователям не предоставился, хотя бат-файл выполнялся при входе, если запускать его локально на компе - все разрешения выставляются в заданном порядке. Просмотр событий ошибок не выявил. Подскажите куда копать дальше.
Автор: Qarma
Дата сообщения: 03.11.2009 16:50
Здравствуйте. Помогите решить проблему: Нужно выполнить одну и ту же процедуру 2000 раз. Нужен рациональный выход из данной ситуации, но не как не тупым копированием процедуры 2000 раз.
Автор: korosya
Дата сообщения: 03.11.2009 19:26
Подскажите как правильно удалить или закрыть Языковую панель из командной строки.
Я выполняю команду "Regsvr32.exe /u msutb.dll". После перезагрузки панель исчезает, но при этом исчезает и панель быстрого запуска. Известный твик для восстановления панели быстрого запуска: #

не помогает.
Автор: Rush
Дата сообщения: 03.11.2009 19:42
Qarma

Цитата:
Помогите решить проблему: Нужно выполнить одну и ту же процедуру 2000 раз. Нужен рациональный выход из данной ситуации, но не как не тупым копированием процедуры 2000 раз.

Наверное, такое имеется в виду?

Код: for /l %%i in (1#,1#,2000#) do [нужная процедура]
Автор: Qarma
Дата сообщения: 03.11.2009 20:06

Цитата:
Наверное, такое имеется в виду?

Да. То что нужно. Спасибо.
Автор: Smokeer
Дата сообщения: 04.11.2009 02:17
Есть ли в cmd средство для извлечения строк из текстового файла и работы с ними (банальное сравнений, возможность использовать как параметр команды)?
=========
Ответ: FOR /F
Автор: vitrzn
Дата сообщения: 05.11.2009 13:40
есть батник, который удаляет все пустые папки:
for /f "tokens=*" %%i in ('dir /b /s *.*') do move "%%i"
Set "Folder=.\"
Call :SubDir "%Folder%"
GoTo :EOF
:SubDir
For /D %%B In ("%~1\*.*") Do (
Call :SubDir "%%B"
Dir "%%B" /B /A:-D>Nul 2>&1 || RD /Q "%%B">Nul 2>&1
)
работает он чудесно, но вот если есть папка такого имени "РћР±РЅРѕРІС‹", то он не может из неё переместить все файлы и удалить, пишет "Синтаксическая ошибка в имени"

Как нибуть это можно исправить, чтобы удалял папки и с таким "абракадабрным" именем ?

p.s. абракадабра в имени разная (
Автор: Rush
Дата сообщения: 06.11.2009 12:40
vitrzn
А ты попробуй сохранить батник в кодировке utf-8.
И потестируй на искуственно созданном каталоге с именами файлов и папок в разных кодировках (на русском). Во избежание...
Но, вроде, должно работать нормально.


Добавлено:
У меня и в других кодировках отрабатывает нормально...
Автор: yavig4
Дата сообщения: 07.11.2009 23:46
Братва, помогите, плиз!
Имеется экзешник prog.exe с параметром <param>.
И текстовый sourse.txt с набором этих параметров (много) - каждый параметр в одной строке этого текстого файла. Как написать батник, который бы брал последовательно по одному параметру из sourse.txt, передавал бы экзешнику, экзешник бы выполнялся проверяя на выходе типа <prog param == arg> и в случае "да" загонял бы этот param в другой текстовый файл типа sourse1.txt и шел бы дальше до конца текстового sourse.txt ? че то путаюсь с перенаправлениями <<

Добавлено:
Братва, помогите, плиз!
Имеется экзешник prog.exe с параметром <param>.
И текстовый sourse.txt с набором этих параметров (много) - каждый параметр в одной строке этого текстого файла. Как написать батник, который бы брал последовательно по одному параметру из sourse.txt, передавал бы экзешнику, экзешник бы выполнялся проверяя на выходе типа <prog param == arg> и в случае "да" загонял бы этот param в другой текстовый файл типа sourse1.txt и шел бы дальше до конца текстового sourse.txt ? че то путаюсь с перенаправлениями <<


Автор: Maqentaer
Дата сообщения: 08.11.2009 14:40
yavig4

Цитата:
экзешник бы выполнялся проверяя на выходе типа <prog param == arg> и в случае "да" загонял бы этот param в другой текстовый файл типа sourse1.txt и шел бы дальше до конца текстового sourse.txt ? че то путаюсь с перенаправлениями <<

вообще непонятно что ты хотел сказать.
судя по описанию тебе нужно еще и .exe написать.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.