2015-01-26 5 views
1

Есть ли в любом случае поиск параметров командной строки в общем смысле. Или мы заложники документации таких программ? Например, в командной строке я набираю explorer или блокнот ... но если я положу первый параметр в качестве пути к файлу, он откроет этот путь к файлу для меня ... как я должен знать, что этот вход параметра существует, и, возможно, есть кучу других полей параметров, о которых я не знаю. Нужно ли систематически искать параметры программы?Поиск параметров командной строки?

ответ

1

В программах Windows отвечают за обработку собственных параметров командной строки, и они могут сделать это любым способом. (Обычно отбрасывать токенизацию в библиотеку времени выполнения C, но не обязательно).

Это дает программисту максимальную гибкость, но это означает, что если программист не задокументировал командную строку, нет простого способа обратить вспять спроектируйте его после факта.

(UNIX не очень отличается, токенизация обрабатывается оболочкой, но остальная часть обработки - это ответственность приложений. В отличие от этого, обработка всей командной строки обрабатывается оболочкой, на основе синтаксиса информации, которая должна быть встроена в приложении)

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

application /? 
application -? 
application /help 
application -help 
application --? 
application --help 

(Аранжировка приблизительно от наиболее общих до наименее общих, варианты с двумя дефисами обычно встречаются только в sof который был перенесен из UNIX.)

Я не искал фактическую статистику, но у меня сложилось впечатление, что большинство приложений с командной строкой (возможно, 80% или более) предоставляют такое резюме. Это менее распространено для приложений GUI.

В противном случае вы можете иногда находить параметры командной строки, ища строки в исполняемом файле. Microsoft предоставляет утилиту, которая делает это, strings.exe, загружаемый со своего веб-сайта. (Разумеется, знание о существовании возможного варианта командной строки не обязательно означает, что вы сможете выяснить, что он делает!)

Если у вас есть доступ к исходному коду или у вас есть навыки в разборке , которые могут предоставить другой вариант, если вы достаточно отчаялись.

+0

ссылка на strings.exe https://technet.microsoft.com/en-us/sysinternals/bb897439.aspx – CodeCamper

1

Нет. Хотя вы всегда можете попробовать programname /?.

Блокнот принимает только одно имя файла ИЛИ принимает /p filename ... (вы можете увидеть команду в записи печати txtfiles в реестре).

Вот что-то из Windows 98 Explorer это все равно.

Explorer 
explorer [/n] [/e][,/root,object][[,/select],subobject] 

None Explorer rooted at the Desktop 
/n Opens a new window. 
/e Explorer View (default if nothing else is on the command line.) 
/root,object Starts Explorer with object the top item (normally Desktop is the top item). Eg: explorer /e,/root,c:\Starts Explorer with the C drive as the only drive available. 
/select,subobject Selects the specified subobject. 

Replaceable parameters are %1 (one) which is the short file or folder name and %l (L) which is the long file name. 

/IDLIST 
This is an additional parameter that means a Windows internal structure is being passed. eg: 

Explorer.exe /e,/idlist,%I 
The %I is a replacable parameter representing an IDLIST. 

Rooted Views 
To open an explorer item that starts with a special folder as the top folder use the following syntax. 

Where the special folder is a sub folder of the desktop 

explorer /e,root,::{CLSID of special folder} 

Where the special folder is a sub folder of another special folder (usually, if not always My Computer) 

explorer /e,root,::{CLSID of parent}/::{CLSID of special folder} 

Where the special folder is part of the file system 

explorer /e,root,path to folder 

See Namespaces on the Icons Page for a list of CLSIDs for special folders. 

Examples 
Note that /select is inconsistent. Sometime the/is required, sometimes it should be left out, and sometimes it doesn't matter. 

Starts explorer with the Windows folder opened and selected. 

explorer /e,select,c:\windows 
Starts explorer with Windows the top level folder and command opened and selected. 

explorer /e,/root,c:\windows,select,c:\windows\command 
Starts explorer with Windows the top level folder and Tips.txt showing instead of the file listing. 

explorer /e,/root,c:\windows,select,c:\windows\tips.txt 
Starts explorer with My Computer the top level folder and all branches except for drives collapsed. 

explorer /e,/root,::{20d04fe0-3aea-1069-a2d8-08002b30309d} 
Starts explorer with C:\ the top level folder. 

explorer /e,/root,c:\ 
Starts the Dial Up Networking folder in folder view. 

explorer.exe ::{20d04fe0-3aea-1069-a2d8-08002b30309d}\::{992cffa0-f557-101a-88ec-00dd010ccc48} 
Смежные вопросы