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

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

Автор: vitrzn
Дата сообщения: 16.10.2008 08:50
Elroir

Докладываю!
Всё работает как надо !!! ОГРОМНОЕ СПАСИБО !!!

(запустил в папке где кол-во файлов 1498!!! , батник работал, работал, а потом отключился - но это я так понял нормально, т.к. ну уж слишком большое кол-во. Если в папке кол-во около 500! , то всё ОК. )

Добавлено:
а ещё вопросик!

как можно в батнике написать своё описание (ну типа: этот батник делает то-то то-то)
так чтобы без ущерба для производительности
если не ошибаюсь
: бла бла
Автор: Kilyan
Дата сообщения: 16.10.2008 13:45
Млин не могу понять!!!
Подскажите:

path c:\program files\winrar\
rar.exe u -m3 -dh -std "%~dp0BACKup7.rar" "c:\Program Files\DKS\DATA\*.*" "c:\Program Files\DKS\INDEX\*.*" "c:\Program Files\DKS\TEXTS\*.*"

-------------------------------
ранее содержимое архива было:
-DATA
-TEXT
-INDEX

При обновлении архива - прежнее остается , а к нему добавляется полный путь - разве что без буквы диска т.е. - ПрограмФайлс\ДСК\....

Как мне правильно сделать обновление архива чтоб только поддиректории указанных папок учтитывались, а не то что до них?
Автор: igor_andreev
Дата сообщения: 16.10.2008 13:56
Kilyan
c:\program files\winrar\rar.txt
почитай про ключи -ep,-ep1,-ep2,-ep3
Автор: Kilyan
Дата сообщения: 16.10.2008 14:02
igor_andreev
Это было первым делом! И былоб так просто - я б не обращался!
в моем случе - получаю:
-ep - нет каталогов вовсе как и -ep1
-ep2 - вместе с папками ПРОГРАМФАЙЛС ....
-ep3 - Ковсему еще и имя диска...

Что то не то!
Есть еще идеи?
Автор: igor_andreev
Дата сообщения: 16.10.2008 14:38
Kilyan
-ep1 и убери после названий папок все \*.*
Автор: Kilyan
Дата сообщения: 16.10.2008 14:54
igor_andreev
Млин - сам бы никода не догадался - Спасибо друг... выручил ...
Такого я в справке точно не видел!
Автор: Elroir
Дата сообщения: 16.10.2008 16:53
vitrzn

Цитата:
т.к. ну уж слишком большое кол-во

Да.. на такое количество файлов я, действительно,не расчитывал.


Цитата:
как можно в батнике написать своё описание (ну типа: этот батник делает то-то то-то)
так чтобы без ущерба для производительности


Код:
echo This batch file is used to .....
echo The arguments are : ....
Автор: gryu
Дата сообщения: 16.10.2008 17:08
Elroir

Цитата:
вставить строчку "chcp 1251>nul"

а не подскажешь, почему может ругатся на эту команду?
или не конвертит (текст так и идёт кракозяброй)


Добавлено:
причём сама "грузилица" не меняется, из чего можно сделать вывод, что смена кодировки просто не происходит.
Автор: Elroir
Дата сообщения: 16.10.2008 17:18
gryu

Цитата:
а не подскажешь, почему может ругатся на эту команду?
или не конвертит (текст так и идёт кракозяброй)

Так ругается или не конвертит?
Если ругается, то что пишет?
Если не конвертит, значит проблема со шрифтами (чаще всего это означает, что шрифт, установленный для консоли, не поддерживает нужную кодовую страницу). Надо поставить в консоли шрифт "Lucida console". Как вариант - в реестре были сделаны изменения, касающиеся шрифтов.
Автор: gryu
Дата сообщения: 16.10.2008 17:26
Elroir

Цитата:
Так ругается или не конвертит?

а на выбор.
именно так как написано - не конвертит.
по старому принципу chcp=1251 - ругается на неизвестную команду.

Цитата:
Надо поставить в консоли шрифт "Lucida console"

хм. попробую.
Автор: slinzex
Дата сообщения: 16.10.2008 17:27
У нас учитель по истории употребляет POWERPOINT presentation. Ну а нам приходится всё в ручную катать так как нам он не дает файлик с его флешки.

Так вот, как можно запрограмировать комп чтоб в назначенное время он произвел "тихую" копировку флешки. Кейлоггер чтоли поставить или батник прописать?? Я им не польз...

1-сисстема XP и антивирус PANDA стоят. Она не будут возражать?
2-И ещё: файлик я думаю больше 3МБ может быть, т.к много рисунков. А никак нельзя склонить флешку целиком в тихом режиме. Типа снять бэкап ???

Автор: gryu
Дата сообщения: 16.10.2008 17:28

Цитата:
шрифт "Lucida console"

не прокатило.
Не там менял.
Менял в блокноте, а нужно было в свойствах окон cmd.
Кстати, а как батником поменять эту настройку?
Именно шрифт в свойствах окна cmd.
По идее кк то через реестр, но гда там этот ключ....
Автор: U235
Дата сообщения: 16.10.2008 17:45
gryu
"chcp" точно латиницей? Добавляя в батник русский комментарий можно и перепутать раскладку, а русское "с" и латинское "c" на одной кнопке...
Автор: Elroir
Дата сообщения: 16.10.2008 17:59
gryu
Насколько я помню, настройки консоли в реестре находятся здесь :
HKEY_CURRENT_USER\Console
Попробуй пока вместо "chcp 1251>nul" использовать "mode con cp select=1251>nul"
Автор: vitrzn
Дата сообщения: 16.10.2008 18:43
Elroir

А уменя с комментом в батнике - всё ОК !
Автор: Elroir
Дата сообщения: 16.10.2008 18:49
vitrzn

Цитата:
А уменя с комментом в батнике - всё ОК !

Tы имел в виду комментарии внутри батника, которые не должны выводится на экран?
Тогда в начале строчки комментария должно быть либо ":", либо "::", либо "rem ".
Автор: brand1
Дата сообщения: 17.10.2008 10:04
2mozanakis
Эт еще что за лохотрон!?? Ждешь когда тебе батник напишут, который сам регится и лаве зарабатывает?

2all
Как в батнике в переменную получить дату на n-дней меньше текущей.
Автор: Kilyan
Дата сообщения: 17.10.2008 13:49
Помогите вот с чем:

Как записать в лог файл действия выполненные rar.exe
Чтоб действия отображались в консоли! и хоть сразу или после окончания записывались в лог.

это не подходит-
for /F "usebackq delims=" %%i in (`command`) do echo %%i&echo %%i>>FileLog.txt

т.к в лог пишется все - и путь откуда запущен ком.файл ....
помогите плиз!
Автор: Elroir
Дата сообщения: 17.10.2008 14:39
Kilyan

Цитата:
Как записать в лог файл действия выполненные rar.exe

Используй утилиту mtee.exe.

Код: rar ... | mtee log.txt
Автор: slinzex
Дата сообщения: 17.10.2008 15:45
mne ktot otvetit?
Автор: KapralBel
Дата сообщения: 17.10.2008 18:21
slinzex

Цитата:
mne ktot otvetit?

На какой вопрос?

или нам еще поискать сам вопрос?
Автор: slinzex
Дата сообщения: 17.10.2008 22:17
2 raz pishu:

У нас учитель по истории употребляет POWERPOINT presentation. Ну а нам приходится всё в ручную катать так как нам он не дает файлик с его флешки.

Так вот, как можно запрограмировать комп чтоб в назначенное время он произвел "тихую" копировку флешки. Кейлоггер чтоли поставить или батник прописать?? Я им не польз...

1-сисстема XP и антивирус PANDA стоят. Она не будут возражать?
2-И ещё: файлик я думаю больше 3МБ может быть, т.к много рисунков. А никак нельзя склонить флешку целиком в тихом режиме. Типа снять бэкап ???
Автор: KapralBel
Дата сообщения: 17.10.2008 23:23
slinzex
1. Панда вообще загадочный зверек - сказать не могу

Если есть физический доступ к компу то снять проще всего через общие шары C$, D$, E$
простым копированием
Автор: ComradG
Дата сообщения: 19.10.2008 21:18
Меня брат уже задолбал сбрасывать настройки сервака. Я написал пару батников и тут столкнулся со следующей проблемой: узнать какие процессы запущены можно путем одной команды, но потом, чтобы не выбирать между двумя теми батниками(который из них должен быть запущен) можно ли нарисовать батник, который бы спрашивал какой именно из нужно запускать по нажатию некоторой пимпы(скажем имя батников "1" и "2" и предлагается соответсвенно нажать "1" для запуска первого и т.д.) Если вопрос поднимался, то ткните носом, плиз. А то серьезно времени мало, а серваком биться уже надоело.
Автор: Learsi1948
Дата сообщения: 20.10.2008 00:09
Помогите пожалуйста! Для зачета потребовали написать батник который делает вот какую штуку: сначала задает вопрос типа хотим сервер или манагер опрашивать, затем, после выбора он должен просканировать все айпи данного диапазона и выяснить какие файлы находятся в конкретных папках. списки файлов сохранить в файлы, для каждого айпишника свой.
я сочинил вот это. Но оно не работает так как dir по сетке не хочет арбайтать. Нужен net use. Что делать? Да и вообще, это мой первый опыт, наверное и в синтаксисе проблемы... Помогиииите)))
@echo off
:start choice /c s,m,c Server, Manager, or Cancel

if %errorlevel% LEQ 1 echo Вы выбрали сервер GOTO serv
        
:serv echo Вы выбрали сервер
if exist c:svedenija\nul GOTO obs else MKDIR c:\svedenija GOTO obs
bs for /L %%P in (1#,1#,84) do net \\192.168.%%P.100\share\t:\ /a > c:\svedenija\serv%%P.doc GOTO :end

if %errorlevel% LEQ 2 GOTO man
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 2 GOTO osh    

:man choice /c t, s, O, M Teaspoon, Soft, O:\, M:\

if %errorlevel% LEQ 1
if exist c:svedenija\nul GOTO obm1 else MKDIR c:\svedenija GOTO obm1    
bm1 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\o:\teaspoon\ /a > \svedenija\man-teaspoon%%P.doc
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
                    
if %errorlevel% LEQ 2
if exist c:svedenija\nul GOTO obm2 else MKDIR c:\svedenija GOTO obm2
bm2 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\m:\soft\ /a > \svedenija\man-soft%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LEQ 3
if exist c:svedenija\nul GOTO obm3 else MKDIR c:\svedenija GOTO obm3
bm3 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\o:\ /a > \svedenija\man-O%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LEQ 4
if exist c:svedenija\nul GOTO obm4 else MKDIR c:\svedenija GOTO obm4
bm4 for /L %%P in (1#,1#,84) do dir \\192.168.%%P.1\share\m:\ /a > \svedenija\man-M%%P.doc GOTO end
choice /c p, n Prodoljat, Zakon4it
if %errorlevel% LEQ 1 GOTO start else GOTO end
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 4 GOTO osh
sh echo Вы ввели другой символ. choice /c z, f Zanovo, Finish
if %errorlevel% LSS 1 GOTO osh
if %errorlevel% GTR 2 GOTO osh
if %errorlevel% LEQ 1 GOTO start
if %errorlevel% LEQ 2 GOTO end
    

:end exit echo Пакетная программа закончена Запрошенные данные записаны в каталоге svedenija на диске С pause echo Для выхода нажмите CTRL+C

Автор: vitrzn
Дата сообщения: 20.10.2008 08:02
Вопрос.
I.
а как можно (какой командой) передать в текстовый файл определённый текст?
Текст можно в самом батнике написать, но перед этим содержимое текстового файла должно быть пустым или очистить !


II.
Или может поможете сделать так:
есть список папок в директории Base
.\RLAW086\
.\RLAW087\
.\RLAW091\
.\RLAW095\
.\RLAW096\
В этой папке есть файлик BASELIST.CFG (в текстовом формате)

Вопрос - можно как нибуть зациклить обработку этой папки , так чтобы батник делал перебор этой папки , т.е. брал название первой папки и вставлял в файл BASELIST.CFG и так до последней папки в этой директории
ну приблизительно так:

1.берём первое название папки в дир. Base и вставляем в BASELIST.CFG
2.переход на уровень выше (т.е. .\base\)
3.бла бла - операции с базой (запуск exe с командной строкой), после завершения всех операций переход к п.1.
И так пока все папки в директории Base не будут обработаны.

Автор: vgik07
Дата сообщения: 20.10.2008 14:05
Помогите разобраться!
Нужно строку начинающуюся с 1:245 в 1.ctl найти, скопировать следующей строкой, первую уже из 2-х изменить, заменить определенных знаки слово mera 3 на vera5 и во второй тожу заменить эти же знаки на надежда 7.85 и на выходе получить файл 2.ctl
Автор: rBBWYwg
Дата сообщения: 20.10.2008 14:07
Еще вопрос. Есть ли способ добавить к имени файла название папки, в которой он находится? Например, файл TEST.txt находится в папке FOLDER, и батник меняет имя файла на FOLDER_TEST.txt или TEST_FOLDER.txt, или подобное.
Автор: vserd
Дата сообщения: 20.10.2008 15:36
vitrzn

Цитата:
I.
а как можно (какой командой) передать в текстовый файл определённый текст?
Текст можно в самом батнике написать, но перед этим содержимое текстового файла должно быть пустым или очистить !

В батнике напиши строки
@echo sampletext >file1.txt
@echo sampletext2>>file1.txt
затем в другом
@echo sampletext3 >file1.txt
@echo sampletext4 >file1.txt

запусти первый и посмотри на результат, запусти второй и посмотри на результат (содержимое file1.txt).


Цитата:
есть список папок в директории Base

нехочется мне делать сизифов труд отлаживая код, но шаги распишу:
1 .заходишь в base (сd base)
2. делаешь вывод имен папок в файл (команда DIR параметры >File1).
3. возвращаешся на один уровень вверх cd ..
4. затем с помошью команды for вычитываешь из base\file1 названия папок
5. Записываешь в BASELIST.CFG имя папки (echo %%I > BASELIST.CFG) и вызываешь обработку (call или программа с параметрами).

Все команды изучаешь с ключем /? (cd /?, for /?. dir /? .....), изучаешь внимательно, пробуешь.
Вместо "долгоиграющих" программ ставь Echo testxxx. Когда отладишся заменишь на реалку.

Крайне рекомандую почитать эту тему и архивные ветки (версии для печати). Найдешь массу полезного, да и шаблоны можно накопипастить. Задачка часто встречается.

Автор: Elroir
Дата сообщения: 20.10.2008 16:14
rBBWYwg

Цитата:
Есть ли способ добавить к имени файла название папки, в которой он находится? Например, файл TEST.txt находится в папке FOLDER, и батник меняет имя файла на FOLDER_TEST.txt или TEST_FOLDER.txt, или подобное.


Код:
@echo off
for %%a in (*.txt) do call :add_dir "%%a" "%cd%"
goto :EOF
:add_dir
ren "%~1" "%~nx2_%~nx1"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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