인터넷에 연결되지 않은 상태에서 Windows 오프라인을 실행하는 컴퓨터에서 작업 할 때 명령 줄을 통해 사용 가능한 cmd 명령 (사용 포함) 목록 을 가져 오거나 생성 할 수 있습니까?
인터넷에 연결되지 않은 상태에서 Windows 오프라인을 실행하는 컴퓨터에서 작업 할 때 명령 줄을 통해 사용 가능한 cmd 명령 (사용 포함) 목록 을 가져 오거나 생성 할 수 있습니까?
답변:
명령 목록 :
help
특정 명령에 대한 자세한 내용 :
help <command>
또는
<command> /?
예를 들면 다음과 같습니다.
help xcopy
xcopy /?
ping
, arp
, nslookup
? help
네트워킹 명령이 아닌 기본 Windows 명령 목록 만 생성하는 것 같습니다 .
windows\system32
프로그램 / 명령을 해결할 때 찾는 폴더의 프로그램입니다. 목록에서 exe를 찾을 수 있습니다. 올리버의 대답을보십시오.
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 명령 목록을 포함하는 html 파일과 "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 그것은 나를 위해 거기에서 멈춘다.
나는 그것이 당신이 요구하는 것이 아니라는 것을 알고 있지만 명령 프롬프트 대신 Powershell을 배우기를 원할 수 있습니다. Microsoft는 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 /?
명령에 대한 정보를 얻는 데 사용할 수 있습니다 . :)