Вверх ↑
Этот топик читают: Гость
Ответов: 16
Рейтинг: 0
#1: 2012-11-03 23:37:32 ЛС | профиль | цитата
Часто на форуме встречаются указания, например:

..путь пропиши такой
C:WINDOWSsystem32cmd.exe
в командной строке
/k copy "%fname%" "%oname%"...

а что это означает не рассказывают.
вопрос: Где посмотреть синематику (правила)
для написания путей и команд в командной строке компиляторов?
Откуда люди дающие советы знают это? (метод тыка?)
Заранее спасибо! (Советы типа - читай мат.часть просьба не давать)


карма: 1

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#2: 2012-11-03 23:50:12 ЛС | профиль | цитата
eav писал(а):
Где посмотреть синематику (правила)

А набрать в окне cmd -- cmd /?, не пробовал
карма: 22

0
Ответов: 16
Рейтинг: 0
#3: 2012-11-04 00:48:28 ЛС | профиль | цитата
Попробывал. Информации по поводу %fname% или %oname% здесь нет.
Дайте пожалуйста более расширенный ответ, если в курсе!!

cmd

C:\Users\Andrey>--cmd/?
"--cmd" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Users\Andrey>cmd/?
Запуск новой копии интерпретатора команд Windows.

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] строка]

/C Выполнение указанной команды (строки) с последующим завершением.
/K Выполнение указанной команды (строки) без последующего завершения.
/S Изменение поведения после /C или /K (см. ниже)
/Q Отключение режима вывода команд на экран (ECHO).
/D Отключение выполнения команд AutoRun из реестра (см. ниже)
/A Вывод результатов выполнения команд в формате ANSI.
/U Вывод результатов выполнения команд в формате UNICODE.
/T:fg Выбор цвета переднего плана/фона (более подробно см. COLOR /?)
/E:ON Разрешение расширенной обработки команд (см. ниже)
/E:OFF Запрет расширенной обработки команд (см. ниже)
/F:ON Разрешение символов завершения имен файлов и папок (см. ниже)
/F:OFF Запрет символов завершения имен файлов и папок (см. ниже)
/V:ON Разрешение отложенного расширения переменных среды с применением
символа '!' в качестве разделителя. Например, /V:ON разрешает
использовать !var! в качестве расширения переменной var во время
выполнения. Синтаксис var служит для расширения переменных
при вводе, что приводит к совсем другим результатам внутри
цикла FOR.
/V:OFF Запрет отложенного расширения переменных среды.

Чтобы указать в одной строке несколько команд, следует разделить их
символами '&&' и заключить в кавычки. Кроме того, из соображений
совместимости, /X означает то же, что и /E:ON, /Y то же, что и /E:OFF
и /R то же, что и /C. Все прочие ключи командной строки игнорируются.

Если указаны ключи /C или /K, то остальная часть командной строки после
такого ключа обрабатывается как командная строка, а обработка символов
кавычек (") ведется по следующим правилам:

1. Если выполняются все перечисленные ниже условия, то символы
кавычек в командной строке сохраняются:

- ключ /S отсутствует
- есть ровно два символа кавычек
- между ними нет других специальных символов, как то: &<>()@^|
- между ними имеются один или несколько пробелов
- строка, заключенная в кавычки, является именем исполнимого
файла.

2. В противном случае, проверяется первый символ, и если он является
символом кавычек, то он удаляется, также удаляется последний
символ кавычек в командной строке, а весь текст после этого
последнего символа кавычек сохраняется.

Если ключ /D НЕ УКАЗАН в командной строке, то при запуске CMD.EXE
выполняется проверка значений переменных REG_SZ или REG_EXPAND_SZ
для следующих разделов системного реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

и/или

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

и если одна из них или обе они присутствуют, то сначала выполняются они.

По умолчанию расширенная обработка команд включена. Чтобы запретить
расширенную обработку для конкретного вызова, используется параметр /E:OFF.
Можно включить или отключить расширенную обработку команд для всех вызовов
CMD.EXE на данном компьютере или для данного сеанса пользователя, задав с
помощью REGEDIT.EXE в системном реестре значение 0x1 или 0x0 для параметров
REG_DWORD для следующих разделов:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

и/или

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

Параметры пользователя переопределяют параметры компьютера.
Параметры командной строки переопределяют соответствующие параметры реестра.

В пакетном файле аргументы SETLOCAL ENABLEEXTENSIONS или DISABLEEXTENSIONS
переопределяют параметр /E:ON или /E:OFF. Для получения дополнительных
сведений введите "SETLOCAL /?".

При расширенной обработке команд изменения и/или добавления затрагивают
следующие команды:

DEL или ERASE
COLOR
CD или CHDIR
MD или MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (изменен также вызов внешних команд)
ASSOC
FTYPE

Для получения подробных сведений введите "имя_команды /?".

Отложенное расширение переменных среды НЕ ВКЛЮЧЕНО по умолчанию. Можно
включить или отключить отложенное расширение переменных среды для конкретного
вызова CMD.EXE с помощью параметра /V:ON или /V:OFF. Можно включить или
отключить отложенное расширение переменных среды для всех вызовов CMD.EXE на
данном компьютере или для данного пользователя, задав с помощью команды
REGEDIT.EXE в системном реестре значение 0x1 или 0x0 для параметров REG_DWORD
для следующих разделов:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

и/или

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

Параметры пользователя переопределяют параметры компьютера. Параметры командн
строки, в свою очередь, переопределяют параметры реестра.

В пакетном файле аргументы SETLOCAL ENABLEDELAYEDEXPANSION или
DISABLEDELAYEDEXPANSION переопределяют параметр /V:ON или /V:OFF. Для получен
дополнительных сведений введите "SETLOCAL /?".

Если отложенное расширение переменных среды включено, то для замены текущего
значения переменной среды во время выполнения может использоваться символ
восклицательного знака "!".

Можно включить или отключить завершение имен файлов и папок для
конкретного вызова CMD.EXE с помощью ключей /F:ON или /F:OFF.
Завершение имен можно включить или отключить для
всех вызовов CMD.EXE на данном компьютере или для данного пользователя,
с помощью REGEDIT.EXE задав значения REG_DWORD в системном реестре
для следующих разделов:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

и/или

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar

установив их шестнадцатеричные значения равными коду управляющего символа,
используемого для конкретной функции (например, 0x4 для CTRL-D или 0x6 для
CTRL-F). Параметры пользователя перекрывают параметры компьютера.
Ключи командной строки, в свою очередь, перекрывают параметры реестра.

Если завершение включено с помощью ключа командной строки /F:ON,
то используются два управляющих символа: CTRL-D для имен папок и CTRL-F
для имен файлов. Чтобы отключить конкретный символ завершения в системном
реестре, в качестве кода специального символа используется шестнадцатеричное
значение символа пробела (0x20).

Завершение вызывается при вводе одного из этих двух специальных символов.
Функция завершения берет строку пути слева от точки ввода, дописывает
к ней символ шаблона, если таковой отсутствует, а затем строит список
путей, которые соответствуют полученному определению. После этого
выводится первый элемент этого списка соответствующих путей. Если же
список пуст, то подается звуковой сигнал и ничего не выводится.
После этого повторный ввод того же самого специального символа приводит
к циклическому перебору всех соответствующих путей. Нажатие клавиши
<Shift> при вводе управляющего символа позволяет просматривать список
путей в обратном порядке. Если изменить выведенный путь, а затем снова
ввести управляющий символ, сохраненный список очищается и строится новый
список путей. То же самое происходит, если переключиться с одного символа
завершения на другой. Единственное отличие при использовании символа
завершения файла состоит в том, что при этом для построения списка
соответствия берется и путь, и имя файла, а при использовании символа
завершения папки берется только путь. Если символ завершения используется
в одной из встроенных команд манипулирования папками (CD, MD или RD), то
всегда подразумевается символ завершения папок.

Символ завершения правильно работает и с именами файлов, содержащими
пробелы или иные специальные символы, если при этом строка соответствия
заключена в кавычки. Кроме того, если сместить точку ввода влево, а затем
использовать символ завершения внутри строки, оставшийся справа от точки
ввода текст будет отброшен.

Специальные символы, которые требуют обязательного заключения в кавычки:
<пробел>
&()[]{}^=;!'+,`~
карма: 1

0
Ответов: 1731
Рейтинг: 68
#4: 2012-11-04 00:58:41 ЛС | профиль | цитата
%fname% - имя файла над которым совершаются действия. File name
%oname% - имя файла после проделанных действий. Output name
Это своеобразные переменные.
карма: 1

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#5: 2012-11-04 01:57:21 ЛС | профиль | цитата
Откуда вообще взялись переменные "%fname%" и "%oname%"
Таких переменных нет в системе, это специальные переменные самой среды HiAsm. Существует понятие системных переменных среды, которые можно получить, используя в окне cmd команду set, так вот они и заключаются в знак процента, к примеру -- %programfiles%. Команда set покажет все назначения системных переменны в системе. Для programfiles, к примеру, это будет Crogram Files. Интерпретатор заменит %programfiles% на ее значение -- Crogram Files при выполнении команды. Можно самому создавать переменные среды в системе для дальнейшей работы.
карма: 22

0
Ответов: 5446
Рейтинг: 323
#6: 2012-11-04 11:25:11 ЛС | профиль | цитата
nesco, чел спрашивает про строку компилятора.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#7: 2012-11-04 13:02:36 ЛС | профиль | цитата
iarspider, мне стыдно, но за всё время использования HiAsm ни разу ничего не изменял в строке компилятора.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5446
Рейтинг: 323
#8: 2012-11-04 13:10:37 ЛС | профиль | цитата
Tad, не считая создания своих пакетов - я только один раз туды залез (216ю ошибку ловил)
карма: 1

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#9: 2012-11-04 13:16:44 ЛС | профиль | цитата
iarspider писал(а):
чел спрашивает про строку компилятора

А причем там тогда
eav писал(а):
C:WINDOWSsystem32cmd.exe

Как спросили, так и ответили. Экстрасенсы, простите, в отпуске

карма: 22

0
Ответов: 5446
Рейтинг: 323
#10: 2012-11-04 15:10:30 ЛС | профиль | цитата
nesco, а при том, что именно
C:WINDOWSsystem32cmd.exe

и есть компилятор "Copy" (пакет Web и иже с ним)!

карма: 1

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#11: 2012-11-04 15:59:28 ЛС | профиль | цитата
iarspider писал(а):
и есть компилятор "Copy"

Пардонсе, или я чего-то не догоняю, или где там cmd

copy_1xx.png

Еще раз повторюсь

nesco писал(а):
Как спросили, так и ответили

Про переменные "%fname%" и "%oname%" то же

nesco писал(а):
это специальные переменные самой среды HiAsm

------------ Дoбавленo в 15.59:
Вот, если кому уж очень надо переменные среды HiAsm

%fname% - путь к компилируемому файлу в папке code соответствующего пакета;
%upath% - путь к папке code соответствующего пакета;
%oname% - путь к файлу проекта в папке проекта;
%opath% - путь к папке проекта;
%curdir% - путь к текущей папке HiAsm-a

Напоминаю, что эти переменные действуют только в среде HiAsm, и жестко прописаны в самом HiAsm-e, в системе они недействительны
карма: 22

0
файлы: 1copy_1xx.png [22.2KB] [1424]
Ответов: 16
Рейтинг: 0
#12: 2012-11-05 20:30:00 ЛС | профиль | цитата
Проблема всех форумов(к сожалению)-это не умение понимать заданный вопрос. Единственный наиболее полный ответ - который дал nesco. Но так и не ответил где это прописано, но так как он разработчик - поверим на слово. Спасибо!

Tad писал(а):
мне стыдно, но за всё время использования HiAsm ни разу ничего не изменял в строке компилятора.


...и не надо. Просто хочется не просто делать, а и понимать (по возможности подробно)что ты делаешь, и тогда при возникновении необходимости можно быстро сообразить что поменять..

А теперь вопрос более конкретный:
папка с файлом [111.sha] предположим - "X"
папка к компилируемому файлу в папке code соответствующего пакета - "Y"
папка с результирующим файлом после компиляции - "Z"
Все три папки разные!! Это условие!!!
Если я напишу - %fname%%oname%, то hiasm поместит скомпилированный файл в папку проекта с файлом [111.sha], а мне так не надо. Как написать правильно?
карма: 1

0
Ответов: 5446
Рейтинг: 323
#13: 2012-11-05 21:05:02 ЛС | профиль | цитата
eav, "ты не должен этого хотеть" (с).
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#14: 2012-11-05 21:21:24 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 06:46:13
карма: 0

0
Ответов: 16
Рейтинг: 0
#15: 2012-11-05 21:51:50 ЛС | профиль | цитата
iarspider писал(а):
eav, "ты не должен этого хотеть" (с).

и кто же это определяет?
...с детства учили докапываться до самого нехочу

------------ Дoбавленo в 21.50:
z21-16.opera-mini.net писал(а):
ПУСК -> Все программы -> Стандартные -> Командная строка, вставляем "%HiAsm%compilerDelphidcc32.exe" /? и читаем до понимания


    Microsoft Windows [Version 6.1.7600]
    (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

    C:UsersAndrey>"%HiAsm%compilerDelphidcc32.exe"/?
    Системе не удается найти указанный путь.

    C:UsersAndrey>"%HiAsm%compilerDelphidcc32.exe" /?
    Системе не удается найти указанный путь.

    C:UsersAndrey>%HiAsm%compilerDelphidcc32.exe /?
    Системе не удается найти указанный путь.

Прочитал тчк Понял зпт что Системе не удается найти указанный путь тчк
------------ Дoбавленo в 21.51:
Может ответит nesco?
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)