(インターネットに接続せずに)Windowsをオフラインで実行しているコンピューターで作業している場合、コマンドラインから使用可能なcmdコマンド(使用法を含む)のリストを取得/生成できますか?
(インターネットに接続せずに)Windowsをオフラインで実行しているコンピューターで作業している場合、コマンドラインから使用可能なcmdコマンド(使用法を含む)のリストを取得/生成できますか?
回答:
コマンドのリスト:
help
また、特定のコマンドの詳細については:
help <command>
または
<command> /?
例えば:
help xcopy
xcopy /?
ping
、arp
、nslookup
?と思われるhelp
だけで、基本的なWindowsのコマンドのリストを生成し、コマンドネットワーキングありません。
windows\system32
プログラム/コマンドを解決するときに探すフォルダー内のプログラムです。リストについては、exeを検索できます。Oliverの答えをご覧ください。
公式リストは、Microsoft Command-line reference AZにあります。それに加えて...
質問に直接回答する.exe
ために、実行可能なすべてのファイルを単にリストするスクリプトを考案しました(それらはにあるためPATH
)。デフォルトでは、%WINDIR%
(で実行しない限り)に存在するもののみをリストします--all
。
スクリプトの以前の反復では、すべてのコマンドを/?
で開始しましたが、これは非常に悪い考えです。上のすべてのアプリケーションがPATH
そのパラメーターを理解するわけではありません。ヘルプを出力するのではなく、単に起動して実行し続けるものもあります。そのため、かなり多くのリソースがかなり早く消費されます。
@SETLOCAL ENABLEEXTENSIONS
@ECHO OFF
IF "%1"=="--all" (
SET LIST_ALL=TRUE
)
CALL :printPath "%PATH%"
:printPath
FOR /F "tokens=1,* delims=;" %%A IN ("%~1") DO (
IF EXIST "%%A" (
PUSHD "%%A"
FOR %%F IN (*.exe) DO (
ECHO.%%~dnpfF | FINDSTR /C:"%WINDIR%" 1> NUL
IF ERRORLEVEL 1 (
IF "%LIST_ALL%"=="TRUE" ECHO.%%~dnpfF
) ELSE (
ECHO.%%~dnpfF
)
)
POPD
) ELSE (
REM ECHO Skipping non-existent folder '%%A'
)
CALL :printPath "%%~B"
)
ENDLOCAL
だから、そこに。これにより、使用可能なすべてのコマンドとそのパラメーターのリストが表示されます。既に予想できるように、想像するほど有用ではありません。
ここに本当に重要なものがあります!
.exe
あなたのファイルよりも興味深いのPATH
はcmd.exe
ビルトインです。同様にIF
、FOR
とSET
。ビルトインの完全なリストはありませんが、次を実行することでそれらのほとんどを見ることができますcmd.exe /?
:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (also includes changes to external command invocation)
ASSOC
FTYPE
ただし、その時点でヘルプはコマンド拡張機能を参照しているため、リストは不完全な場合があります。いくつかのビルトインを詳しく見てみましょう。
FOR
コマンドのドキュメントには、渡すことができるクレイジーなパラメーターがすべてリストされていますFOR
。これは、ループに関連する何かを書きたい場合に役立つユーティリティです。
このドキュメントには、狂った「チルダ表記」の説明も含まれています。
In addition, substitution of FOR variable references has been enhanced
You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
%~$PATH:I - searches the directories listed in the PATH
environment variable and expands %I to the
fully qualified name of the first one found.
If the environment variable name is not
defined or the file is not found by the
search, then this modifier expands to the
empty string
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
%~fsI - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
environment variable for %I and expands to the
drive letter and path of the first one found.
%~ftzaI - expands %I to a DIR like output line
IF
は分岐のコマンドです。比較演算子がリストされているため、このページが必要になります。
If Command Extensions are enabled IF changes as follows:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
where compare-op may be one of:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
SET
変数に対してさまざまな操作を実行できます。
The /A switch specifies that the string to the right of the equal sign
is a numerical expression that is evaluated. The expression evaluator
is pretty simple and supports the following operations, in decreasing
order of precedence:
() - grouping
! ~ - - unary operators
* / % - arithmetic operators
+ - - arithmetic operators
<< >> - logical shift
& - bitwise and
^ - bitwise exclusive or
| - bitwise or
= *= /= %= += -= - assignment
&= ^= |= <<= >>=
, - expression separator
また、上記の「チルダ表記法」による文字列操作も可能です。
C:\Windows\System32
です。私はそれがPATH
ARP.EXE
しかし、それをリストします。スクリプトを実行すると、私が言及したコマンドが表示されますか?
PATH
、既に存在しないフォルダーが含まれている場合は問題があると思います。これにより、スクリプトが破損します。たぶんそれが問題ですか?私は修正に取り組んでいます。
PATH
:D
dostips.com(CreateDosCommandIndex.bat)で利用可能なバッチスクリプトがあります。これは、システムで利用可能なdosコマンドの完全なリストと「commandname /?」で生成されたそれぞれの出力を含むhtmlファイルを生成します。
dostips.comは現時点でdbロード関連の問題を抱えているようで、ウェブサイトは断続的に動作するため、以下に報告します。
@ECHO OFF
REM.-- Prepare the Command Processor
SETLOCAL ENABLEEXTENSIONS
REM --
REM -- Copyright note
REM -- This script is provided as is. No waranty is made, whatso ever.
REM -- You may use and modify the script as you like, but keep the version history with
REM -- recognition to http://www.dostips.com in it.
REM --
REM Version History:
REM XX.XXX YYYYMMDD Author Description
SET "version=01.000" &:20051201 p.h. initial version, origin http://www.dostips.com
SET "version=01.001" &:20060122 p.h. Fix missing exclamation marks in documentation (http://www.dostips.com)
SET "version=01.002" &:20060218 p.h. replaced TEXTAREA with PRE XMP (http://www.dostips.com)
SET "version=01.003" &:20060218 p.h. php embedding (http://www.dostips.com)
SET "version=01.004" &:20060723 p.h. fix page links for FireFox (http://www.dostips.com)
SET "version=01.005" &:20061015 p.h. invoke HELP via '"call" help', allows overriding help command with a help.bat file (http://www.dostips.com)
SET "version=01.006" &:20061015 p.h. cleanup progress indicator (http://www.dostips.com)
SET "version=01.007" &:20080316 p.h. use codepage 1252 to support european users (http://www.dostips.com)
SET "version=02.000" &:20080316 p.h. use FOR command to generate HTML, avoids most escape characters (http://www.dostips.com)
SET "version=02.000" &:20100201 p.h. now using css and xhtml
REM !! For a new version entry, copy the last entry down and modify Date, Author and Description
SET "version=%version: =%"
for /f "delims=: tokens=2" %%a in ('chcp') do set "restore_codepage=%%a"
chcp 1252>NUL
set "z=%~dpn0.htm"
rem echo.^<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"^> >"%z%"
echo.^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"^> >"%z%"
set "title=DOS Command Index"
for /f "tokens=*" %%a in ('ver') do set "winver=%%a"
echo.Creating the header ...
for %%A in (
"<html lang='en-US' xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'>"
"<head>"
"<style type='text/css'>"
" h1 {text-align:center;}"
" h2 {text-align:center;}"
" table.center {margin-left: auto;margin-right: auto;}"
" td {text-align:left;}"
" div.center {text-align:center;}"
" div.sourcebatch {background: #DDDDDD;}"
" div.helptext {background: #F8F8FF;}"
" div.top {float: right;}"
"</style>"
"<title>%title%</title>"
"<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />"
"</head>"
"<body bgcolor='#FFFFCC'>"
"<font color='darkblue'>"
"<h1>%title%</h1>"
"<div class='center'>"
"<table class='center' border='1' cellspacing='1' cellpadding='3'>"
" <tr><td>Windows Version</td><td>:</td><td>%winver%</td></tr>"
" <tr><td>Document Source</td><td>:</td><td>"
" <a href='http://www.dostips.com/'><b>http://www.dostips.com</a><br />"
" <a href='http://www.dostips.com/%~n0.php'><b>http://www.dostips.com/%~nx0.php</a>"
" </td></tr>"
" <tr><td>Created by</td><td>:</td><td><a href='http://www.dostips.com/%~nx0'>"
" <b>%~nx0</b></a><br /><a href='#%~n0'><b>Source Code below</b></a></td></tr>"
"</table>"
"</div>"
"<br /><br />"
"<table class='center'>"
) do echo.%%~A>>"%z%"
echo.Creating the index ...
set /a cnt=0
for /f "tokens=1,*" %%a in ('"help|findstr /v /b /c:" " /c:"For more""') do (
for %%A in (
" <tr><td><a href='#%%a'>%%a</a></td><td>%%b</td></tr>"
) do echo.%%~A>>"%z%"
set /a cnt+=1
)
for %%A in (
"</table>"
"<br /><br />"
) do echo.%%~A>>"%z%"
echo.Extracting HELP text ...
call:initProgress cnt
for /f %%a in ('"help|findstr /v /b /c:" " /c:"For more""') do (
echo.Processing %%a
for %%A in (
"<div class='top'><a href='#'>TOP</a></div>"
"<h2><a name='%%a'>%%a</a></h2>"
"<div class='helptext'><pre><xmp>"
) do echo.%%~A>>"%z%"
call help %%a >>"%z%" 2>&1
echo ^</xmp^> >>"%z%"
for %%A in (
"</pre></div>"
) do echo.%%~A>>"%z%"
call:tickProgress
)
echo.Injecting source script ...
for %%A in (
""
"<br /><br />"
"<div class='center'>"
"<div class='top'><a href='#'>TOP</a></div>"
"<a name='%~n0'><h2>DOS Batch Script Source that created this Document</h2></a>"
"This %title% has been created automatically by the following DOS batch script:"
"<br /><br />"
"</div>"
"<div class='sourcebatch'><pre><xmp>"
) do echo.%%~A>>"%z%"
type "%~f0" >>"%z%"
echo.Creating the footer ...
echo ^</xmp^> >>"%z%"
for %%A in (
"</pre></div>"
""
"</font>"
"</body>"
"</html>"
) do echo.%%~A>>"%z%"
chcp %restore_codepage%>NUL
explorer "%z%"
:SKIP
REM.-- End of application
FOR /l %%a in (5,-1,1) do (TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL)
TITLE Press any key to close the application&ECHO.&GOTO:EOF
::-----------------------------------------------------------
::helper functions follow below here
::-----------------------------------------------------------
:initProgress -- initialize an internal progress counter and display the progress in percent
:: -- %~1: in - progress counter maximum, equal to 100 percent
:: -- %~2: in - title string formatter, default is '[P] completed.'
set /a "ProgressCnt=-1"
set /a "ProgressMax=%~1"
set "ProgressFormat=%~2"
if "%ProgressFormat%"=="" set "ProgressFormat=[PPPP]"
set "ProgressFormat=%ProgressFormat:[PPPP]=[P] completed.%"
call :tickProgress
GOTO:EOF
:tickProgress -- display the next progress tick
set /a "ProgressCnt+=1"
SETLOCAL
set /a "per=100*ProgressCnt/ProgressMax"
set "per=%per%%%"
call title %%ProgressFormat:[P]=%per%%%
GOTO:EOF
Processing SC
私のために止まります。しかし、入力を待っているだけのようです。押すEnter
と終了します:)
help
(実行する方が簡単です)コマンドを示しています。それでも、入力のおかげで、非常に便利です。@OliverSalzburgそれは私にとっても同様です。
オフラインソリューションを探しているのとまったく同じではありません(Webページを開くにはインターネット接続が必要です)が、cmdコマンドの非常に便利なツールとリファレンスです。
私はそれがまさにあなたが求めているものではないことを知っていますが、コマンドプロンプトの代わりにPowershellの学習を始めたいかもしれません。マイクロソフトは、Powershellのコマンドプロンプトを段階的に廃止しようとしているので、習得するのに良いスキルになるでしょう。
Powershellを使用している場合、コマンドGet-Command
は、ロードされたすべてのモジュールから現在実行できるすべてのコマンドをリストします。次のような出力が生成されます。
CommandType Name Definition
----------- ---- ----------
Cmdlet Add-Content Add-Content [-Path] <String[...
Cmdlet Add-History Add-History [[-InputObject] ...
Cmdlet Add-Member Add-Member [-MemberType] <PS...
Cmdlet Add-PSSnapin Add-PSSnapin [-Name] <String...
Cmdlet Clear-Content Clear-Content [-Path] <Strin...
xcopy /?
して、コマンドに関する情報を取得できます。:)