Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: KapralBel
Дата сообщения: 24.05.2006 12:24
vancio
Потому, что когда открывается 1-й файл то батничек ждет когда закроется Эксель что-бы продолжить работу
Если надо открыть оба - то

Код: @Echo Off
Call Test1.cmd
Call Test2.cmd
Автор: vancio
Дата сообщения: 24.05.2006 12:59
сделал так:

start1.bat

Код:
@Echo Off
"D:\test.xls"
Автор: jak_forest
Дата сообщения: 25.05.2006 07:59
vancio
а может надо так ?

Код:
@Echo Off
start start1.bat
start start2.bat
Автор: vancio
Дата сообщения: 25.05.2006 09:21
Странно,
с первого раза вроде заработало, но потом стал открывать только первый файл(хотя должен был три открыть) вместо последних двух просто запускает Excel.


Добавлено:
сделал так:

Код: @Echo Off
start /b start1.bat
start /b start2.bat
start /b start3.bat
Автор: vancio
Дата сообщения: 26.05.2006 09:28
Люди , подскажите кто нибудь как сделать так чтобы код:

Код:
@Echo Off
start /b start1.bat
start /b start2.bat
start /b start3.bat
Автор: Zostr
Дата сообщения: 07.06.2006 09:23
Такой вопрос
Нужен батник выполняющий подключение через телнет к удаленной машине
telnet xxx.xx.xx.xx
далее просится ввести логин и пароль. Как сделать чтоб програмка сама писала логин и пароль.
и дальше после подключений выполняла
Net stop ServerGeCon
Пауза 30 секунд
Net start ServerGeCon
Автор: uZver
Дата сообщения: 07.06.2006 14:10
Zostr
стандартный telnet скорее всего никак. по крайней мере не bat-файлом.
попробуй http://www.sysinternals.com/utilities/psexec.html
Автор: surgutfred
Дата сообщения: 08.06.2006 15:01
Всем привет.
@echo of
if exist S:\boxes\002rdd\QUEST\*.* goto :surgu
goto :end

:surgu
if exist S:\boxes\002rdd\QUEST\*.rar rar.exe e S:\boxes\002rdd\QUEST\*.rar S:\boxes\002rdd\QUEST\
if exist S:\boxes\002rdd\QUEST\*.rar del S:\boxes\002rdd\QUEST\*.rar
if exist S:\boxes\002rdd\QUEST\*.qst move S:\boxes\002rdd\QUEST\*.qst C:\CONS3000\RECEIVE
call C:\CONS3000\answer.bat
rar.exe a -m5 -r -rr -df -v10000 surgu C:\CONS3000\send\*.ans
move C:\CONS3000\send\surgu*.* S:\boxes\002rdd\ANSWER\
:end

почему, если S:\boxes\002rdd\QUEST\ нет файлов он все равно идет по метке surgu, а не end. Он не понимает что ли *.*? Как ему тогда сказать, что если папка пустая, то иди в конец, а если что то есть, иди к surgu
Автор: igor_andreev
Дата сообщения: 08.06.2006 16:17
surgutfred
DIR S:\boxes\002rdd\QUEST\* /B | FIND /V "HT6UG7FUJDO8_87R" >NUL && GOTO :surgu || GOTO :end
Автор: surgutfred
Дата сообщения: 09.06.2006 06:12
igor_andreev
Сенькаю, вроде пошло.
А "HT6UG7FUJDO8_87R" - это что? Любой набор символов?
Автор: igor_andreev
Дата сообщения: 09.06.2006 07:04
surgutfred
Да, любой бред, которого стопудово в папке нет. И вместо

if exist S:\boxes\002rdd\QUEST\*.rar del S:\boxes\002rdd\QUEST\*.rar
if exist S:\boxes\002rdd\QUEST\*.qst move S:\boxes\002rdd\QUEST\*.qst ...

ты бы тоже лучше использовал или вывод команды DIR, вроде
DIR /B Folder\*.* | FIND /I ".rar" ....
или FOR
FOR %%A IN (*.rar) DO ...

Не понимает IF EXIST подстановочных символов(*?).

Автор: evle
Дата сообщения: 09.06.2006 08:02
igor_andreev

Цитата:
Не понимает IF EXIST подстановочных символов(*?).

Лучше всё-таки проверять, прежде чем писать.
[more]
g:\Testing\if>dir
Том в устройстве G имеет метку Disk 1
Серийный номер тома: 5893-1B21

Содержимое папки g:\Testing\if

09.06.2006 13:37 <DIR> .
09.06.2006 13:37 <DIR> ..
09.06.2006 13:36 0 1.txt
09.06.2006 13:37 0 2.xyz
2 файлов 0 байт
2 папок 131 503 808 512 байт свободно

g:\Testing\if>if exist *.txt echo File exist
File exist

g:\Testing\if>if exist *.zzz echo File exist

g:\Testing\if>if exist *.* echo File exist
File exist

g:\Testing\if>del *.*
g:\Testing\if\*.*, Продолжить [Y(да)/N(нет)]? y

g:\Testing\if>dir
Том в устройстве G имеет метку Disk 1
Серийный номер тома: 5893-1B21

Содержимое папки g:\Testing\if

09.06.2006 13:39 <DIR> .
09.06.2006 13:39 <DIR> ..
0 файлов 0 байт
2 папок 131 503 808 512 байт свободно

g:\Testing\if>if exist *.* echo File exist
File exist

g:\Testing\if>
[/more]
Конструкция "if exist *.*" Не срабатывает, скорее всего, из-за того, что в папке всегда существует ссылка на себя (".") и на родительскую папку (".."). Как красиво определить, есть ли в ней и другие файлы, пока не знаю.
А вот конструкция

Код:
DIR /B Folder\*.* | FIND /I ".rar"
Автор: nightlight
Дата сообщения: 09.06.2006 15:25
How can a batch script test if a folder is empty, or contains folders, files, or both folders and files?
http://www.jsifaq.com/SUBM/tip6400/rh6415.htm
Автор: igor_andreev
Дата сообщения: 09.06.2006 15:41
evle

Цитата:
Лучше всё-таки проверять, прежде чем писать.

Я ими пользоваться умею Загляни например вовнутрь моего батника из этого поста http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=3573&start=1540#8
И проверь на работоспособность заодно, пожалуйста, если есть кучка непереименованных хотфиксов. Я его, когда писал, исходил из того, что Майкрософт более-менее определилась с названиями своих KB. Но там я подстановочные знаки использую вкупе с командой FOR

Цитата:
А вот конструкция
DIR /B Folder\*.* | FIND /I ".rar"
не очень надёжна.

Согласен. Поэтому я и написал перед конструкцией слово "вроде"

Автор: eubulos
Дата сообщения: 10.06.2006 01:10
    dir *.avi /B >> dir.txt
    dir *.mpg /B >> dir.txt
    dir *.mkv /B >> dir.txt
    dir *.ogm /B >> dir.txt
    dir *.wmv /B >> dir.txt
    for /f "delims==" %%A in (dir.txt) do encode -n 50 "%%A"
    del dir.txt

вопрос такой, а как сделать похитрее? т.е. получаем список файлов по расширению и передаем в цикл, в цикле же программе передается имя файлы и параметр собственно, получаются в цикле файлы. как после каждого прохода создавать директорию с именем исходного файла и после каждого прохода цикла переносить результат в директорию, скажем по маске? ?
Автор: Labean_Hesv
Дата сообщения: 10.06.2006 17:12
Есть папка
D:\Documents and Settings\Roman\Cookies\

В ней надо удалять все Cookies, за исключением нужных:

Допустим:
roman@forum.ru-board[1].txt
roman@forum.ru-board[2].txt
roman@forum.ru-board[3].txt
roman@forum.ru-board[4].txt
и т.д.

roman@forum.warezzz[2]
roman@forums.overclockers[1]
roman@philka[1]
и.т.д.

Написать батничек, в него как-то загнать список нужных файлов, создать на него ярлычек на Рабочем столе и в любое время чистить. Это мои мысли. С программированием не знаком, если кто-нибудь создаст такую штуку, буду очень признателен.
Автор: scup
Дата сообщения: 10.06.2006 22:23
Labean_Hesv так и пиши: del D:\Documents and Settings\Roman\Cookies\roman@*.* это в батнике, дальше создай на столе на него ярлык.... Вроде все просто. Или я че-то не понял? кстати, нужные перед удалением можешь куда-то копировать.
Автор: Labean_Hesv
Дата сообщения: 11.06.2006 02:10
scup

Цитата:
Вроде все просто. Или я че-то не понял?
Сделать хочу, чтобы это все заранее готово было и потом быстро лишние убрать одним щелчком, а оставить только нужные. Например, Рапида свой кук создала, чтобы его убрать надо лезть в папку, а забудешь убрать потом она "припоинит" при случае и т.д.. А по предложенному пути я сейчас и хожу - отсортировал, перенес, остаток удалил, скопировал назад... тягомотина!
А можно сделать так: дописать в этот батничек, чтобы после удаления всех, скопировать мой резерв нужных Cookies из папки D:\CookRes все файлы в папку D:\Documents and Settings\Roman\Cookies\. Тогда, в принципе, задача была бы решена нормально. Я бы нужные резервировал, накапливал в папке CookRes, а потом загонял бы их на место.

Добавлено:
А где бы почитать, как писать бат-файлы, хотя бы самые основы, чтобы немного разбираться что к чему, и куда запрягать коня!
Автор: igor_andreev
Дата сообщения: 11.06.2006 09:23
Labean_Hesv

Цитата:
D:\Documents and Settings\Roman\Cookies\

В ней надо удалять все Cookies, за исключением нужных:

Можно нужным печенькам временно присвоить атрибут "Только чтение", потом дать команду на удаление всех файлов *.txt, кроме имеющих атрибут "Только чтение", и после удаления опять убрать с оставшихся(стало быть нужных) атрибут read-only.

Код:
@ECHO OFF

CD /D "%USERPROFILE%\Cookies"

REM Тут вписывай ATTRIB +R *нужная кука*.txt

ATTRIB +R *forum.ru-board*.txt > NUL
ATTRIB +R *wapbbs*.txt > NUL
ATTRIB +R *imho*.txt > NUL
ATTRIB +R *nge*.txt > NUL
ATTRIB +R *softkey*.txt > NUL
ATTRIB +R *filepost*.txt > NUL
ATTRIB +R *avaxhome*.txt > NUL

DEL /Q /A:-R *.TXT

ATTRIB -R *.TXT > NUL
Автор: Labean_Hesv
Дата сообщения: 11.06.2006 10:26
igor_andreev

Цитата:
ROBOCOPY (есть такая дивная утилита у Майкрософт).
А где бы ее скачать? Искал по поиску, но везде только ссылки на доку по ней. Если немного весит, может подбросишь мне на мыло villy_gabeshСОБАКАland.ru Буду очень признателен.
Автор: popalka
Дата сообщения: 12.06.2006 08:33
Есть вопрос по команде RENAME

Как можно переименовать файлы вида filename.txt в code.filename.txt пакетно
Другими словами, как вставить перед старым названимем файлов в директории (1000 файлов) какое-нибудь слово?
И еще вопрос:
есть 1000 файлов вида filename.doc.pdf как можно их пакетно переименовать в filename.txt.pdf ?
что-то игрался с Using wildcards with rename

Цитата:

You can use wildcards (* and ?) in either file name parameter. If you use wildcards in filename2, the characters represented by the wildcards will be identical to the corresponding characters in filename1.

Но ни к чему ни пришел.


------------
Стер старое сообщение, так с большей частью вопросов разобрался
Автор: eubulos
Дата сообщения: 13.06.2006 07:31
for /f "delims==" %%A in ('dir *.avi, *.mpg, *.mkv, *.ogm /b') do encode -n 15 "%%A" - однако, одна строка. А вот как после do впихнуть еще mkdir %%A и перенос результатов в папку %%A?
Автор: vu1tur
Дата сообщения: 13.06.2006 09:00
eubulos
... do (
mkdir %%A
encode -n 15 "%%A"
...
)
Автор: eubulos
Дата сообщения: 13.06.2006 19:51
vu1tur
Огромное спасибо! Просто не знал, что так можно.

В итоге имеем:
for /f "delims==" %%A in ('dir *.avi, *.mpg, *.mkv, *.ogm /b') do (
encode -n 15 "%%A"
mkdir d:\1\"%%A"
copy *.avs d:\1\"%%A"
del *.avs)

Мало ли, вдруг пригодится кому-то. Пути задаем сами, куда удобнее. Расширения тоже могут меняться произвольно, по потребностям.
Автор: Relogin
Дата сообщения: 14.06.2006 08:11
Стоит такая задачка:
написать cmd, который будет сканировать одну директорию. Если в директории больше одного файла - удалить все, кроме самого свежего по дате создания. Если один файл - ничего не делать
help me плз
Автор: vu1tur
Дата сообщения: 14.06.2006 16:21
Relogin

Код: [no]@echo off
set keep_files=1
for /F %%a in ('dir /B /A-D /O-D %1') do call :purge "%%a"
goto :eof

:purge
if %keep_files% == 0 (
del /Q %1
) else (
echo keeping %1
set /a keep_files-=1
)

:eof[/no]
Автор: Relogin
Дата сообщения: 14.06.2006 16:24
Извините, може я че недопонял - а где в вышеприведенном скрипте
проверка дат?
Смысл в том, что ВСЕГДА надо оставить ТОЛЬКО один и только самый СВЕЖИЙ по дате.Все остальные надо уничтожить. НО ОДИН самый свежий - должен быть неприкосновенен.
Это архивы , бэкапы, и надо чтобы они самочистились
Автор: evle
Дата сообщения: 14.06.2006 18:07
Relogin
Смысл в том, что список файлов сортирутся командой dir по дате, соответственно в начале списка будут самые новые файлы. Первый файл из списка пропускается, остальные удаляются.
Автор: CYBORG1980
Дата сообщения: 15.06.2006 03:08
Отцы, ткните где посмотреть как скопировать 1 файлик на все компы в сети. Изначально экспорт компов будет делаться через net view >comps.txt или через dsquery * forestroot -scope subtree -filter objectcategory=computer -attr name -l >comps.txt

Заранее благодарен

Автор: GOODmen
Дата сообщения: 15.06.2006 07:12
vu1tur
Цитата:
keep_files — количество файлов, которые нужно оставить


Уважаемый vu1tur, а если заранее неизвестно сколько файлов нужно оставить? То есть - удалить надо один самый старый файл, вне зависимости сколько их всего в папке, как посчитать их и подставить это значение в keep_files?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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