Windows'ta cmd komutlarının bir listesini almak için bir komut var mı?


Yanıtlar:


20

Komutların bir listesi için:

help

Ve belirli bir komutla ilgili ayrıntılar için:

help <command>

veya

<command> /?

Örneğin:

help xcopy
xcopy /?

xcopy /?Komut hakkında bilgi almak için kullanabilirsiniz . :)
avirk

O da benzeri komutlar ağ listesini almak mümkün mü ping, arp, nslookup? helpAğ komutlarının değil , yalnızca temel Windows komutlarının bir listesini oluşturuyor gibi görünüyor .
amiregelz

2
@amiregelz: windows\system32Programlar / komutları çözerken göründüğüne inandığım klasördeki programlar. Listeniz için orada exes arayabilirsiniz. Oliver'ın cevabına bakın.
George Duckett

14

Resmi bir listeyi Microsoft Komut satırı başvurusu AZ'de bulabilirsiniz . Bunun yanında...

Sorunuzu doğrudan yanıtlamak için, yalnızca .exeyürütebileceğiniz tüm dosyaları listeleyen bir komut dosyası tasarladım PATH. Varsayılan olarak, yalnızca içinde bulunanları da listeler %WINDIR%(birlikte çalıştırmadığınız sürece --all).

Senaryoyu önceki bir yinelemede, her komutla başladım /?, bu çok kötü bir fikir. Bu uygulamadaki her uygulama PATHbu parametreyi anlamaz. Bazıları herhangi bir yardım yazdırmak yerine çalışmaya başlar ve çalışmaya devam eder. Bu çok hızlı bir şekilde çok kaynak tüketiyor.

@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

Bu yüzden orada. Bu size mevcut tüm komutların ve parametrelerinin bir listesini verir. Tahmin edebileceğiniz gibi, tahmin edebileceğiniz kadar kullanışlı değil.

İşte gerçekten önemli olan!

Daha da ilginci .exeAşağıdaki yerlerde de dosyalar PATHşunlardır cmd.exeyerleşik ins. Gibi IF, FORve SET. Yerleşiklerin tam bir listesine sahip değilim, ancak çoğunu çalıştırarak görebilirsiniz 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

Yine de, bu noktada yardım komut uzantılarına başvuruyor , bu nedenle liste eksik olabilir. Bazı yerleşiklere daha yakından bakalım:

İÇİN /?

FORKomutun belgeleri , geçebileceğiniz tüm çılgın parametreleri listeler FOR. Döngülerle ilgili herhangi bir şey yazmak istiyorsanız, bu yardımcı programdır .

Bu belge ayrıca çılgın "tilde gösterimi" için açıklama içerir:

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

EĞER /?

IFdallanma komutudur . Karşılaştırma işleçlerini listelediği için bu sayfaya ihtiyacınız olacak:

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

AYARLAMAK /?

SET değişkenler üzerinde çok çeşitli işlemler gerçekleştirmenizi sağlar.

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

Ayrıca yukarıda belirtilen "tilde gösterimi" aracılığıyla dize manipülasyonuna izin verir


Burada listelenen komutları almanın bir yolu olduğunu düşünüyor musunuz? ancak yazarkenhelp ? Örneğin ağ komutları gibi ipconfig, nslookup, arp, telnetve ping?
amiregelz

@amiregelz: Bulundukları yerde iyi çalışmalı C:\Windows\System32. SanırımPATH
Der Hochstapler

Orada bulunsalar bile onları listelemez. Gerçi listeler ARP.EXE. Senaryonuzu yürütürken bahsettiğim komutları görüyor musunuz?
amiregelz

@amiregelz: Evet, ancak PATHartık var olmayan bir klasör içeriyorsa bir sorun olduğunu düşünüyorum . Bu komut dosyasının bozulmasına neden olur. Belki de sorun budur? Bir düzeltme üzerinde çalışıyorum.
Der Hochstapler

2
@amiregelz: Ayrıca başlamak o kadar akıllıca değil gibi görünüyor her uygulamayaPATH : D
Der Hochstapler

6

Dostips.com'da ( CreateDosCommandIndex.bat ), sistemdeki mevcut dos komutlarının tam listesini içeren bir html dosyası oluşturan ve "outputname /?"

Dostips.com'un şu anda db yüküyle ilgili sorunları olduğu ve web sitelerinin aralıklı çalıştığı için aşağıda bildiriyorum.

@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

1
Çok hoş bir yaklaşım. Yine Processing SCde benim için duruyor . Ama öyle görünüyor ki sadece bir girdi bekliyor. Yani Enterbitirmek bitirelim :)
Der Hochstapler

1
O rağmen oldukça iyi, (işleme ve html dosyası oluşturma) bulunuyor mu önceden senaryoyu olmasını gerektirir sadece komutlar olduğunu gösterirken, helpkomut gösterileri (daha kolaydır yürütmek için). Yine de, giriş için teşekkürler, çok yararlı. @OliverSalzburg Orada benim için de duruyor.
amiregelz

3

Tam olarak çevrimdışı bir çözüm aradığınız şey değil (web sayfasını açmak için internet bağlantınızın olması gerekir), ancak cmd komutları için çok kullanışlı bir araç ve referanstır:

Windows CMD komut satırının AZ Dizini.


Yararlı, ama aradığım şey bu değil. Yine de teşekkürler.
amiregelz

@amiregelz, örneğin wget ile indirirseniz çevrimdışı bir çözümdür.
barlop

3

Tam olarak ne istediğini biliyorum, ama komut istemi yerine Powershell öğrenmeye başlamak isteyebilirsiniz. Microsoft, Powershell için komut istemini aşamalı olarak kaldırmaya çalışıyor, bu yüzden öğrenmek için iyi bir yetenek olurdu.

Powershell'deyseniz, komut Get-Commandşu anda yüklü tüm modüllerden çalıştırılabilen tüm komutları listeler. Aşağıdaki gibi bir çıktı üretir:

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...
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.