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

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

Автор: Elroir
Дата сообщения: 07.10.2007 15:12
ZenitFan

Цитата:
Как реализовать описанную мной задачу?

Примерно так:

Код:
@echo off
if /i "%~x1"==".asm" (
"%COMMANDER_PATH%\Coding\TAsm\tasm.exe" %~n1.asm
"%COMMANDER_PATH%\Coding\TAsm\tlink.exe" /t %~n1.obj
"%COMMANDER_PATH%\Coding\TAsm\td.exe" %~n1.com
)
Автор: ZenitFan
Дата сообщения: 07.10.2007 17:08
Elroir

Большое спасибо за помощь! Батник работает так как надо!

Одно уточнение:
Можно ли сделать так, чтобы при запуске данного bat-файла открывалась консоль именно со шрифтом Lucida Console размером 18 (вместо стандартного Terminal маленького размера)? Что нужно для этого прописать внутри bat-файла?
Автор: Elroir
Дата сообщения: 07.10.2007 17:17
ZenitFan
Изнутри батника это сделать нельзя. Нужно менять свойства окна cmd.
Автор: P1lot
Дата сообщения: 08.10.2007 01:36
У нас тут образовалась такая задачка...
Существует файл navigation.dat, который открывается в ворд паде и содержит множество строк типа:

Код: 4 53.740578 -002.905403 55 10990 18 251.105 IWQ EGNO 26 ILS-cat-I
12 62.298658 -150.105592 360 11620 130 0.000 TKA Talkeetna VOR-DME
Автор: Elroir
Дата сообщения: 08.10.2007 02:57
P1lot

Цитата:
Вероятно это реализовать с помощью батника невозможно или я ошибаюсь?

Можно - но очень муторно, сложно и долго. Если есть какая-нибудь другая возможность, кроме батника - лучше воспользоваться ей.
Автор: Filosofem
Дата сообщения: 08.10.2007 08:20
Читаю описание команды "IF" в хэлпе винды....
"...Using the else clause
You must use the else clause on the same line as the command after the if. For example:

IF EXIST FileName. (
del FileName.
) ELSE (
echo FileName. missing.
)
..."

И одного не могу понять - зачем стоят точки после filename?
Что они делают?
Автор: KapralBel
Дата сообщения: 08.10.2007 08:36
Filosofem
Обычная точка в обычном смысле - к синтаксису IF никакого отношения не имеет
Автор: Filosofem
Дата сообщения: 08.10.2007 08:51
а к синтаксису cmd.exe и батников она имеет отношение?
Почему добавление точек в конце имени файла не меняет работу кода?
Почему не создаются файлы и папки с точкой на конце?

И какой смысл в данном примере ставить эти точки, если они не влияют на выполнение кода?
А если влияют, то как?

Звиняйте если тупые вопросы, ненавижу документацию от мелкософта, не понятно где искать ответы на эти вопросы.
Автор: KapralBel
Дата сообщения: 08.10.2007 09:14
Filosofem

Цитата:
Почему добавление точек в конце имени файла не меняет работу кода?
Почему не создаются файлы и папки с точкой на конце?

Учим основы...
Последняя точка отделяет имя (возможно тоже с точками) от расширения - поэтому и не получится


Цитата:
И какой смысл в данном примере ставить эти точки, если они не влияют на выполнение кода?

Не знаю, думаю и в М$ тоже не знают


Цитата:
Звиняйте если тупые вопросы, ненавижу документацию от мелкософта, не понятно где искать ответы на эти вопросы.

Ну по комм.файлам - у них все толково



Цитата:
а к синтаксису cmd.exe и батников она имеет отношение?
как любая другая буква в имени файла
Автор: NIKZZZZ
Дата сообщения: 08.10.2007 09:49
pom205

Цитата:
архивы и бинарники определённых типов в кэше локального прокси "HandyCache". Как это можно сделать? Выбрать из сотен тысяч гзипованных файлов

Боюсь, что батник-неудачный выбор. Даже если его написать, такая программа будет работать слишком долго.
Лучше использовать более развитые языки - WSH, Autoit и т.п.
Автор: Filosofem
Дата сообщения: 08.10.2007 09:58
KapralBel

Цитата:
Последняя точка отделяет имя (возможно тоже с точками) от расширения - поэтому и не получится

Я в курсе, но всеравно не понимаю в чем логика. Почему бы не создать файл с точкой в конце имени и нулевым расширением...
Ладно не важно, моим умом майкрософт не понять.
Интересно что будет если функциями файловой системы такой файл сделать(например nul замечательно создается), или вообще из другой ос, типа никсов или паргоновского файлового менеджера. Но это офтоп


Цитата:
Не знаю, думаю и в М$ тоже не знают

Вот об этом я и говорю. Они в документации точек понаставили, а у меня 2 часа рабочего времени на это ушло и всеравно смысл этих загадочных точек не понятен.

Автор: KapralBel
Дата сообщения: 08.10.2007 10:05
Filosofem
да не обращай внимание на эти точки - и жизнь станет легче
Автор: Filosofem
Дата сообщения: 08.10.2007 10:33
KapralBel
спасибо, так и сделаю. Будем считать очередная загадка природы.
Автор: wolf0425
Дата сообщения: 08.10.2007 10:57

Цитата:
Будем считать очередная загадка природы.
Да это видимо затычка на случай когда filename. - на самом деле переменная, %filename%.
Так можно не проверять специально - определена ли %filename%
Надо взять на вооружение, наверно.
Автор: Filosofem
Дата сообщения: 08.10.2007 11:40
wolf0425
хорошая идея, но опять же в данном примере

Код: IF EXIST %File%. (
del %File%.
) ELSE (
echo %File%. missing.
)
Автор: Elroir
Дата сообщения: 08.10.2007 11:41
Filosofem

Цитата:
Почему бы не создать файл с точкой в конце имени и нулевым расширением...

На самом деле, создать файл (или директорию) с точкой в конце - можно. Делается это так:

Код:
echo.>"\\?\c:\file_with_dot."
Автор: KapralBel
Дата сообщения: 08.10.2007 11:48
Elroir
Можно, только вот проводник - не желает общатся с такими файлами

Комм.строка и ФАР - запросто
Автор: Filosofem
Дата сообщения: 08.10.2007 11:51
Elroir
круто! Впечатляет!!!
Попробовал таким же способом создавать и удалять файлы con, nul, lpt1... итд. Все получается!
Я так понимаю дело в конструкции \\?\
Где про нее можно поподробнее почитать?
Автор: Elroir
Дата сообщения: 08.10.2007 11:53
KapralBel
Это на случай, когда надо создать файл или директорию, которые сложно удалить

Добавлено:
Filosofem

Цитата:
Где про нее можно поподробнее почитать?

Э... где-то у Майкрософта. Но вот где точно я об этом читал - не помню.
Автор: KapralBel
Дата сообщения: 08.10.2007 12:02
Filosofem
Вполне согласен с Elroir - гдето у мелкомягких
Но инфа уже давно живет своей жизнью - и боюсь перовоисточник уже не найдешь

Elroir
Гы.
Файлик Nul. - у него более забавное поведение, можно попытаться переименовать, не ругается (как в твоем случае), но и не переименовывает



Автор: Elroir
Дата сообщения: 08.10.2007 12:07
KapralBel

Цитата:
Файлик Nul. - у него более забавное поведение

Ну так это же получился "двойной удар". Мало того, что имя зарезервировано, так еще и с точкой в конце

Filosofem
Не совсем оно, но какая-то информация там есть - http://support.microsoft.com/kb/320081
Автор: Filosofem
Дата сообщения: 08.10.2007 12:11
первоисточник не так важен. Прикол в том, что поисковиками это не найти. Пробовал и буквально и "backslash question mark" искать, ничего не выходит. Я и раньше с такими конструкциями сталкивался, например в реестре так любят пути прописывать. Народ если у кого есть ссылки про \\?\, пишите... очень любопытно стало.
Автор: 01MDM
Дата сообщения: 08.10.2007 12:24
Filosofem
Я всегда понимал что \\?\ это обозначение текущего раздела. Если ввести mountvol, то видно что все разделы обозначаются именно так, \\?\Volume{ID раздела}\
Автор: Elroir
Дата сообщения: 08.10.2007 12:25
Filosofem

Цитата:

The Unicode versions of several functions permit a maximum path length of approximately 32,000 characters composed of components up to 255 characters in length. To specify that kind of path, use the "\\?\" prefix.

Note The maximum path of 32,000 characters is approximate, because the "\\?\" prefix can be expanded to a longer string, and the expansion applies to the total length.

For example, "\\?\D:\<path>". To specify such a UNC path, use the "\\?\UNC\" prefix. For example, "\\?\UNC\<server>\<share>". These prefixes are not used as part of the path itself. They indicate that the path should be passed to the system with minimal modification, which means that you cannot use forward slashes to represent path separators, or a period to represent the current directory. Also, you cannot use the "\\?\" prefix with a relative path. Relative paths are limited to MAX_PATH characters.

http://msdn2.microsoft.com/en-us/library/aa365247.aspx
Автор: Filosofem
Дата сообщения: 08.10.2007 13:42
Elroir
спасибо! Это именно то что надо.
Автор: wolf0425
Дата сообщения: 08.10.2007 13:46
Filosofem

Цитата:
если переменная file не определена, будут удалены все файлы из текущей директории включая сам батник.
сначала таки спросят
Автор: GORA2
Дата сообщения: 08.10.2007 14:41
Подскажите, как батником можно удалить папку с именем, например, %COMMANDER_PATH% ?
Автор: Filosofem
Дата сообщения: 08.10.2007 14:58
GORA2
пчему бы просто не удалить?

Код: rd %%COMMANDER_PATH%%
Автор: GORA2
Дата сообщения: 08.10.2007 15:25
А если батник из которого нужно произвести удаление, находиться в этой же папке, то можно эту папку удалить?
Автор: KapralBel
Дата сообщения: 08.10.2007 15:41
GORA2
Попробуй сначала перейти в корень диска

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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