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

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

Автор: igor_andreev
Дата сообщения: 08.12.2006 16:29
Siller

Цитата:
Так вот мне и надо подключать VPN-ку постоянно... может можно всетаки сделать подключение без подтверждения?

А ты поленился посмотреть в rasphone.pbk Там есть название твоего VPN соединения и есть все параметры, о которых я писал на прошлой странице, дабы не тыркать кнопку.
Автор: Jon_Dow
Дата сообщения: 09.12.2006 00:20
Спешу поделиться:
Код: FOR /F "usebackq tokens=1 eol= skip=1 delims= " %%a IN (`help^|findstr /B /V /C:" "`) DO help %%a >>%%a.txt
Автор: drondo
Дата сообщения: 09.12.2006 00:50
Только не пинайте сильно
Помогите создать батник, который создает список всех файлов в данной папке.
"Создание листинга директорий на примере создания плейлиста" в шапке прочитал, но мне нужно чтобы было без подкаталогов. И возможно ли упорядочить этот список по дате создания/изменения/имени/типу, т.е. самому выбирать в каждой конкретной ситуации?
Автор: Elroir
Дата сообщения: 09.12.2006 01:04
drondo
Ну вот... не дают попинать

Код:
@echo off
dir /b /a-d /on %1>listing.txt
Автор: drondo
Дата сообщения: 09.12.2006 01:16
Elroir
в получившимся листинге файлы с русскими именами в кракозябры превращаются. немного усовершенствовал:

Код: @echo off
mode con codepage select=1251 > nul
dir /b /a-d /on %1>listing.txt
Автор: Elroir
Дата сообщения: 09.12.2006 02:48
drondo

Цитата:
А можно ли некоторое подобие интерфейса прикрутить??

Можно.

Код:
@echo off
mode con codepage select=1251 > nul
setlocal
set /p sortby=Sort by name=n, extension=e, size=s, date=d ?
if /i not "%sortby%"=="n" (
if /i not "%sortby%"=="e" (
if /i not "%sortby%"=="s" (
if /i not "%sortby%"=="d" ( echo Error & goto :EOF ))))
dir /b /a-d /o%sortby% %1>listing.txt
Автор: NIKZZZZ
Дата сообщения: 09.12.2006 11:48
Вопрос
Не встречался ли кому-либо нормальный компилятор .bat файлов? Программы типа Quick Batch File Compiler всего лишь копируют батник куда-либо и запускают его, такую вещь можно без труда сделать WinRar'ом, и компилятором такие программы назвать никак нельзя.
Автор: drondo
Дата сообщения: 09.12.2006 23:17
Elroir
Спасибо большое, почти то что нужно. Еще просьбу можно?
желательно чтобы были полные имена, т.е. с путем к папке. Это возможно на основе твоего последнего кода?
Автор: Elroir
Дата сообщения: 10.12.2006 00:31
drondo

Цитата:
желательно чтобы были полные имена, т.е. с путем к папке. Это возможно на основе твоего последнего кода?

Э... действительно на основе

Код:
@echo off
mode con codepage select=1251 > nul
setlocal
set /p sortby=Sort by name=n, extension=e, size=s, date=d ?
if /i not "%sortby%"=="n" (
if /i not "%sortby%"=="e" (
if /i not "%sortby%"=="s" (
if /i not "%sortby%"=="d" ( echo Error & goto :EOF ))))
set cur=%cd%\
pushd %1
dir /b /a-d /o%sortby%>%temp%\tmp_list
if exist "%cur%listing.txt" del /q "%cur%listing.txt"
for /f "tokens=*" %%a in (%temp%\tmp_list) do (
echo %%~dpnxa>>"%cur%listing.txt"
)
del /q %temp%\tmp_list
popd
Автор: Levitant
Дата сообщения: 10.12.2006 09:35
Вопрос по интерфесу. Подскажите плиз, как сделать, что бы, например при нажатии буквы Y (или Enter) искомое действие выполнялось, а при нажатии N оно пропускалось и действие шло дальше или программа закрывалась.
Заранее спасибо.
Автор: Desenix
Дата сообщения: 10.12.2006 09:59
Levitant
просто по нажатию чисто батником нельзя, нужно еще и Enter жать
set /p sel="Select & press Enter:"
Автор: ViSiToR
Дата сообщения: 10.12.2006 10:20
Levitant

Цитата:
как сделать, что бы, например при нажатии буквы Y (или Enter) искомое действие выполнялось, а при нажатии N оно пропускалось и действие шло дальше или программа закрывалась.



Код: @echo off
:Again
Echo Are you shure?
Set /p Input=
If /i Not %Input%==N (
If /i Not %Input%==Y (
Echo Type 'Y' or 'N'
pause
cls
Goto Again))
If /i %Input%==Y (
Echo I am Doing somthing)
If /i %Input%==N (
Echo I am Doing somthing else ;-^))
pause
Автор: drondo
Дата сообщения: 10.12.2006 11:42
Elroir
спасибо большое, именно то что мне нужно.
Автор: Levitant
Дата сообщения: 10.12.2006 12:41
ViSiToR, спасибо большое, работает. Плохо только то, что надо еще после Y или N Энтер жать,
А можно как-нибудь батник перевести в exe?
Автор: ViSiToR
Дата сообщения: 10.12.2006 12:49
Levitant

Цитата:
можно как-нибудь батник перевести в exe?

Можно
Автор: Levitant
Дата сообщения: 11.12.2006 13:08

Цитата:
Можно

А как, если не секрет? И если не сложно расскажи
Автор: ViSiToR
Дата сообщения: 11.12.2006 14:42
Jon_Dow

Цитата:
Спешу поделиться

Супер, имхо, в шапку бы это нужно...
Вот только у меня пчему-то у половины файлов крякозябры прописались
Я в начале батника поставил chcp 1251 но многие файлы всё же крякозябры отображают (например, xcopy.txt) - я полагаю это из за того, что эта утилита отдельная, и она не кириллицей выдаёт описание - может можно как то сделать определение, т.е если описание передаётся не кириллицей, то сделать код страницы chcp 866 (или как там для латиницы), а если кириллицей, то chcp 1251?

Levitant

Цитата:
А как, если не секрет?

Там я дал не просто текст, это ссылка на архив , в котором есть утилита позволяющая компилировать батники в экзешник.

NIKZZZZ

Цитата:
Программы типа Quick Batch File Compiler всего лишь копируют батник куда-либо и запускают его

А как ты себе представляешь компилляцию батника? это получается нужно перебирать все известные (существующие) комманды ком. строки, все возможные сочетания команд\управляющих\разделителей, и т.п и .т.д. и на основе всего этого, в принципе, писать совсем новую программу?! не забываем о том что нужно ещё и файлы компилировать, т.е для этого должен быть какой то упаковщик, который всё это совместит... в общем, тяжеловато получится , и тем более, не вижу причины делать такую унивирсальную программу, ведь как ни как, речь идёт о батниках, и их исполнение реализуется за счёт уже существующего интерпритатора (начиная с win 98 кажется).
Автор: MegaSin
Дата сообщения: 11.12.2006 15:25
Знающие люди, прошу помощи
Юзаю в своём батнике be.exe (Batch Enhancer, Norton Utilities 8.0)
много менюшек, обрамлений, окон и т.д.
и проблема в том, то что при выполнении всего этого, окно с каждой новой строчкой меняет размер на +-1, а когда загружается то прокрутка справа пропадает... делаеш следующее действие и опять тоже самое
Вопрос: можно ли как нибудь в начале батника прописать опции чтобы оно было фиксированно размена и не изменялось не при каких условиях?
Заранее спасибо.
Автор: Jon_Dow
Дата сообщения: 11.12.2006 18:24
ViSiToR
к сожалению с выводом в кодировке Win1251 ничего пока сделать не удается - по крайней мере чтоб все красиво было...
Я исходно отрабатывал это чисто для cp866 - там все без вопросов.
Проблема тут кстати в следующем: chcp 1251 действует на все встроенные команды и они меняют кодировку вывода на Win1251, а команды реализованные отдельными модулями просто игнорируют эту команду и выгоняют свой хелп в кодировке cp866...
Что-то я сам никак не соображу каким образом можно сменить кодировку текстового файла без применения внешних утилит - может кто подскажет?


Автор: Levitant
Дата сообщения: 11.12.2006 19:06

Цитата:
Там я дал не просто текст, это ссылка на архив , в котором есть утилита позволяющая компилировать батники в экзешник.

Ыыыы, спасибо!
НЕ заметил, ламерством попахивает :-D
Автор: Elroir
Дата сообщения: 11.12.2006 19:18
MegaSin

Цитата:
Вопрос: можно ли как нибудь в начале батника прописать опции чтобы оно было фиксированно размена и не изменялось не при каких условиях?

Можно попробовать такую строчку:

Код:
mode con cols=80 lines=25
Автор: Kirillhome
Дата сообщения: 11.12.2006 19:26
Jon_Dow
Простейшее преобразование текстового файла в HTML - не поможет?
Если поможет - то, к примеру, так:


Код:
@echo off
echo ^<HTML^> > 123.htm
echo ^<META http-equiv=Content-Type content="text/html; charset=windows-866"^> >> 123.htm
echo ^<BODY^> >> 123.htm
echo ^<PRE^> >> 123.htm
copy 123.htm+%1 123.htm
echo ^</PRE^> >> 123.htm
echo ^</BODY^> >> 123.htm
echo ^</HTML^> >> 123.htm
Автор: Jon_Dow
Дата сообщения: 11.12.2006 19:33
Инфа полезная. А может тогда действительно замутить help на htm? тогда только еще рубрикатор прикрутить надо будет... Но поиск по нему станет неудобным...
Вообще хотелось бы чтоб красиво и в одну строку да еще с возможностью выбора кодировки...
Автор: Maza Faka
Дата сообщения: 12.12.2006 12:20
И всё таки я не понял, как при помощи батника заменить слова в тексте...скажем в C:\Windows\inf\sysoc.inf файле, заменить все HIDE на пустую строчку...или на какое нибудь другое слово, кто нибудь может показать на примере?
Автор: Levitant
Дата сообщения: 12.12.2006 13:04
Maza Faka


Код: @echo off
:: Create the assembler program, by Herbert Kleebauer
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com
:: Use the program
%temp%.\sbs2.com 0 "что заменить" "на что" < "какой_фаил" > "Куда записать. пусть вместе с имнем файла"
:: Delete the program
del %temp%.\sbs2.com
Автор: Elroir
Дата сообщения: 12.12.2006 13:43
Levitant

Цитата:
Подскажите как всесто диска С, сделать что бы батник сам тот диск на котором система или в котором он сам находится

В системе определены переменные windir и systemroot - обе выдают диск и папку Windows - например "C:\Windows". Что-бы воспользоваться ими - надо написать %windir% или %systemroot%.
Пример: нужен путь к папке System32 в папке Windows

Код: echo %systemroot%\system32
Автор: Maza Faka
Дата сообщения: 12.12.2006 14:53
%temp%.\sbs2.com 0 "HIDE" " " < "C:\WINDOWS\inf\sysoc1.inf" > "C:\WINDOWS\inf\sysoc2.inf"

А что это за файл sbs2.com? И что такой огромный батник нужно написать, что бы удалить текст в файле?
Автор: Jon_Dow
Дата сообщения: 12.12.2006 15:01
Maza Faka - и все-таки я бы попробовал обработать файл SYSOC.INF таким способом(чтобы обойтись без привлечения сторонних программ):
Код: TYPE %SystemRoot%\inf\sysoc.inf|find /V /I "HIDE">>new_sysoc.inf
echo [Components]>>new_sysoc.inf
FOR /f "tokens=1,2,3,4* delims=," %%a IN (%SystemRoot%\inf\sysoc.inf
) DO IF /I "%%d"=="HIDE" echo %%a,%%b,%%c,,%%e>>new_sysoc.inf
Автор: Elroir
Дата сообщения: 12.12.2006 18:03
Maza Faka

Цитата:
А что это за файл sbs2.com

Файл создается в процессе выполнения батника, а потом удаляется.

Цитата:
И что такой огромный батник нужно написать

Ты его что - руками набираешь?
Большая часть - это как раз файл sbs2.com

Jon_Dow

Цитата:
все-таки я бы попробовал обработать файл SYSOC.INF таким способом

Проблема в том, что если в файле присутствуют спец. символы, то команда echo не сможет их обработать.
Автор: Levitant
Дата сообщения: 13.12.2006 07:21
Все перерыл тут, помню, что где-то было, а вот где - непомню.
Как при выполнении бантика скрыть командную строку?
Или дайте на нужную страницу ссылочку пожалуйста!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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