Windows基础(1)
-
系统配置
- linux:/etc和/proc(存储信息在目录)
- windows:注册表(存储信息在注册表里)
-
windows的四种shell接口
- GUI图形化用户界面,操作简单
- cmd命令行用户接口,包含一组预定义的命令
- wmic微软基于wbem的实现,后被powershell取代
- powershell自动化脚本框架,支持.net架构
wsl是在windows上运行的子系统
背诵默写
cd
显示当前目录的名称或将其更改
-
改变到指定的目录:
cd /path/to/directory
这会将当前工作目录改变到指定的路径。
-
回到用户的主目录:
cd ~
~
符号代表当前用户的主目录。 -
回到上一个工作目录:
cd -
-
符号代表上一个工作目录。 -
改变到当前目录的父目录:
cd ..
..
代表当前目录的父目录。 -
不带参数的
cd
:cd
不带参数时,
cd
命令会将当前工作目录改变到用户的主目录。 -
使用相对路径:
cd ./directory
./
表示当前目录,所以这会将目录改变到当前目录下的directory
子目录。 -
使用环境变量:
cd ${HOME}/Documents
$HOME
是一个环境变量,代表用户的主目录。 -
列出目录内容:
cd -P /path/to/directory
-P
选项会改变到逻辑路径,而不是物理路径(符号链接)。 -
把上个命令的参数作为cd参数使用:
cd !$
cmd
打开另一个Windows命令解释程序窗口
-
查看 cmd命令的帮助信息:
cmd /?
-
执行批处理脚本:
cmd
命令可以用来执行批处理脚本(.bat 或 .cmd 文件)。例如:cmd /c echo Hello World
这条命令会显示 “Hello World” 然后关闭命令提示符窗口。
启动 Windows 命令解释器的一个新实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string] /C 执行字符串指定的命令然后终止 /K 执行字符串指定的命令但保留 /S 修改 /C 或 /K 之后的字符串处理(见下) /Q 关闭回显 /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 的注册表中的一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions 到 0x1 或 0x0。用户特定设置 比机器设置有优先权。命令行 开关比注册表设置有优先权。 在批处理文件中,SETLOCAL ENABLEEXTENSIONS 或 DISABLEEXTENSIONS 参数 比 /E:ON 或 /E:OFF 开关有优先权。请参阅 SETLOCAL /? 获取详细信息。 命令扩展包括对下列命令所做的 更改和/或添加: DEL or ERASE COLOR CD or CHDIR MD or MKDIR PROMPT PUSHD POPD SET SETLOCAL ENDLOCAL IF FOR CALL SHIFT GOTO START (同时包括对外部命令调用所做的更改) ASSOC FTYPE 有关特定详细信息,请键入 commandname /? 查看。 延迟环境变量扩展不按默认值启用。你 可以用/V:ON 或 /V:OFF 开关,为 CMD.EXE 的某个调用而 启用或停用延迟环境变量扩展。你 可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有 调用的延迟扩展,这要通过设置使用 REGEDIT.EXE 的注册表中的 一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion 和/或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion 到 0x1 或 0x0。用户特定设置 比机器设置有优先权。命令行开关 比注册表设置有优先权。 在批处理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION 参数比 /V:ON 或 /V:OFF 开关有优先权。请参阅 SETLOCAL /? 获取详细信息。 如果延迟环境变量扩展被启用, 惊叹号字符可在执行时间被用来 代替一个环境变量的数值。 你可以用 /F:ON 或 /F:OFF 开关为 CMD.EXE 的某个 调用而启用或禁用文件名完成。你可以在计算上和/或 用户登录会话上启用或禁用 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),就会使用目录 完成。 用引号将相符路径括起来,完成代码可以正确处理含有空格 或其他特殊字符的文件名。同时,如果备份,然后从行内调用 文件完成,完成被调用时位于光标右方的文字会被调用。 需要引号的特殊字符是: <space> ()[]{}^=;!'+,`~(&()
copy
将至少一个文件复制到另一个位置
-
复制单个文件:
copy source_file destination_file
将
source_file
复制到destination_file
。如果destination_file
已存在,它将被覆盖。 -
复制多个文件到同一目录:
copy file1.txt file2.txt destination_directory
将
file1.txt
和file2.txt
复制到destination_directory
目录中。 -
使用通配符复制多个文件:
copy *.txt destination_directory
将当前目录下所有扩展名为
.txt
的文件复制到destination_directory
目录中。 -
复制目录及其子目录中的所有文件:
copy /S source_directory destination_directory
/S
参数用于复制source_directory
目录及其所有子目录中的文件到destination_directory
。 -
复制文件时保留属性:
copy /Y source_file destination_file
/Y
参数用于在覆盖文件时不提示确认,同时保留源文件的属性。 -
复制文件并显示进度:
copy /V source_file destination_file
/V
参数用于在复制过程中显示详细的进度和状态信息。 -
复制文件并设置新的属性:
copy /D:mm/dd/yyyy source_file destination_file
/D
参数用于设置复制文件的新日期,格式为mm/dd/yyyy
。 -
复制文件并忽略现有文件:
copy /I source_file destination_file
/I
参数用于在目标位置已有文件时提示用户是否需要覆盖。 -
合并多个文件到一个文件:
copy file1.txt+file2.txt destination_file.txt
将
file1.txt
和file2.txt
合并到destination_file.txt
中。 -
使用日志文件记录复制操作:
copy /L source_file destination_file
/L
参数用于记录哪些文件被复制,并将记录保存到日志文件中。
del
删除至少一个文件
-
删除单个文件:
del filename
删除当前目录下的
filename
文件。 -
删除多个文件:
del file1.txt file2.txt
删除当前目录下的
file1.txt
和file2.txt
文件。 -
使用通配符删除多个文件:
del *.txt
删除当前目录下所有扩展名为
.txt
的文件。 -
强制删除只读文件:
del /F filename
/F
参数用于强制删除只读文件。 -
删除文件时不提示确认:
del /Q filename
/Q
参数用于在删除文件时不提示确认。 -
删除目录及其子目录中的所有文件:
del /S *.*
/S
参数用于删除当前目录及其所有子目录中的所有文件。 -
删除隐藏文件:
del /A:H *.*
/A:H
参数用于删除所有隐藏文件。 -
删除系统文件:
del /A:S *.*
/A:S
参数用于删除所有系统文件。 -
删除存档属性的文件:
del /A:A *.*
/A:A
参数用于删除所有具有存档属性的文件。 -
删除非常规文件:
del /A:-R *.*
/A:-R
参数用于删除所有非系统、非隐藏、非只读文件。 -
删除文件并禁止错误报告:
del /AR *.*
/AR
参数用于删除所有文件,并且如果发生错误,不显示错误报告。 -
删除文件并显示删除的文件列表:
del /L *.*
/L
参数用于显示将要删除的文件列表,但不实际删除文件。 -
删除文件并显示进度:
del /V *.*
/V
参数用于显示详细的进度和状态信息。 -
删除文件并保留目录结构:
del /T:source_directory destination_directory
/T
参数用于将source_directory
目录中的文件删除,但保留目录结构。
dir
显示一个目录中的文件和子目录
-
显示当前目录下的文件和子目录:
dir
这将列出当前目录中的所有文件和子目录。
-
显示指定目录下的文件和子目录:
dir path
将
path
替换为你想要查看的目录路径。 -
使用通配符显示特定类型的文件:
dir *.txt
这将只列出当前目录下扩展名为
.txt
的文件。 -
显示文件的详细信息:
dir /w
/w
参数使输出以宽格式显示,每行显示多个文件名,而不是默认的每行一个。 -
显示文件的详细信息,包括隐藏和系统文件:
dir /a
/a
参数显示所有文件,包括通常隐藏的文件。 -
只显示隐藏文件:
dir /a:h
/a:h
参数只显示隐藏文件。 -
只显示系统文件:
dir /a:s
/a:s
参数只显示系统文件。 -
显示文件的详细信息,包括文件大小和日期:
dir /l
/l
参数以列表格式显示文件,包括文件大小和日期。 -
显示文件的详细信息,包括文件的短名称:
dir /n
/n
参数以新格式显示文件信息,包括文件的短名称。 -
显示文件的详细信息,包括文件的完整路径:
dir /x
/x
参数显示文件的短名称和扩展名,以及文件的完整路径。 -
按文件扩展名排序:
dir /e
/e
参数按扩展名排序输出。 -
显示目录树:
dir /s
/s
参数显示指定目录下的子目录树。 -
显示文件的压缩属性:
dir /tc
/tc
参数显示文件的压缩状态。 -
显示文件的备用数据流:
dir /r
/r
参数显示文件的备用数据流。 -
显示文件的所有权和访问权限:
dir /q
/q
参数显示文件的所有者和访问权限。
echo
显示消息,或者将命令回显打开或者关闭
在 Windows 中:
-
显示文本:
echo Hello, World!
这将在命令行界面显示 “Hello, World!”。
-
启用或禁用命令回显:
-
启用命令回显:
echo on
-
禁用命令回显:
echo off
这将控制命令执行时是否显示命令本身。
-
-
显示环境变量的值:
echo %PATH%
这将显示当前
PATH
环境变量的值。 -
条件性地显示文本:
if exist filename.txt echo File exists.
如果
filename.txt
存在,这将显示 “File exists.”。 -
创建或修改文件内容:
echo Hello, World! > filename.txt
这将创建
filename.txt
文件(如果不存在)或覆盖文件内容,并写入 “Hello, World!”。 -
追加文本到文件:
echo Another line >> filename.txt
这将在
filename.txt
文件末尾追加一行 “Another line”。 -
使用变量:
set var=Some text echo %var%
这将显示变量
var
的值 “Some text”。
在 Unix/Linux 中:
-
显示文本:
echo "Hello, World!"
这将在终端显示 “Hello, World!”。
-
启用或禁用命令回显:
- 这通常通过 shell 的设置来控制,而不是
echo
命令。
- 这通常通过 shell 的设置来控制,而不是
-
显示环境变量的值:
echo $PATH
这将显示当前
PATH
环境变量的值。 -
条件性地显示文本:
if [ -f filename.txt ]; then echo "File exists."; fi
如果
filename.txt
存在,这将显示 “File exists.”。 -
创建或修改文件内容:
echo "Hello, World!" > filename.txt
这将创建
filename.txt
文件(如果不存在)或覆盖文件内容,并写入 “Hello, World!”。 -
追加文本到文件:
echo "Another line" >> filename.txt
这将在
filename.txt
文件末尾追加一行 “Another line”。 -
使用变量:
var="Some text" echo $var
这将显示变量
var
的值 “Some text”。 -
使用转义字符:
echo "New line\nTab\tBackslash\\"
这将显示 “New line” 后跟一个换行,“Tab” 后跟一个制表符,和 “Backslash” 后跟一个反斜杠。
erase
删除一个或多个文件
-
删除单个文件:
erase filename
删除当前目录下的
filename
文件。 -
删除多个文件:
erase file1.txt file2.txt
删除当前目录下的
file1.txt
和file2.txt
文件。 -
使用通配符删除多个文件:
erase *.txt
删除当前目录下所有扩展名为
.txt
的文件。 -
强制删除只读文件:
erase /F filename
/F
参数用于强制删除只读文件。 -
删除文件时不提示确认:
erase /Q filename
/Q
参数用于在删除文件时不提示确认。 -
删除目录及其子目录中的所有文件:
erase /S *.*
/S
参数用于删除当前目录及其所有子目录中的所有文件。 -
删除隐藏文件:
erase /A:H *.*
/A:H
参数用于删除所有隐藏文件。 -
删除系统文件:
erase /A:S *.*
/A:S
参数用于删除所有系统文件。 -
删除存档属性的文件:
erase /A:A *.*
/A:A
参数用于删除所有具有存档属性的文件。 -
删除文件并禁止错误报告:
erase /AR *.*
/AR
参数用于删除所有文件,并且如果发生错误,不显示错误报告。 -
删除文件并显示删除的文件列表:
erase /L *.*
/L
参数用于显示将要删除的文件列表,但不实际删除文件。
find
在一个或者多个文件中搜索一个文本字符
在 Windows 中:
-
在文件中搜索文本字符串:
find "text" filename.txt
这将在
filename.txt
文件中搜索包含 “text” 的行,并显示这些行。 -
在多个文件中搜索文本字符串:
find "text" file1.txt file2.txt
这将在
file1.txt
和file2.txt
文件中搜索包含 “text” 的行,并显示这些行。 -
使用通配符搜索文本字符串:
find "text" *.txt
这将在当前目录下所有扩展名为
.txt
的文件中搜索包含 “text” 的行,并显示这些行。
在 Unix/Linux 中:
-
按文件名搜索文件:
find /path/to/search -name "filename"
这将在指定路径下搜索名为 “filename” 的文件。
-
按文件类型搜索文件:
find /path/to/search -type f
这将在指定路径下搜索所有类型为文件(
f
)的文件。 -
搜索修改时间在特定天数内的文件:
find /path/to/search -mtime -7
这将在指定路径下搜索过去7天内被修改过的文件。
-
搜索大小超过特定值的文件:
find /path/to/search -size +10M
这将在指定路径下搜索大小超过10MB的文件。
-
搜索权限符合特定模式的文件:
find /path/to/search -perm 755
这将在指定路径下搜索权限为755的文件。
-
使用
-and
组合多个条件:find /path/to/search -name "*.txt" -and -size +10M
这将在指定路径下搜索所有扩展名为
.txt
且大小超过10MB的文件。 -
使用
-exec
对搜索结果执行命令:find /path/to/search -name "*.txt" -exec grep "text" {} \;
这将在指定路径下所有扩展名为
.txt
的文件中搜索包含 “text” 的行,并显示这些行。
findstr
在多个文件中搜索字符串
-
基本搜索:
findstr "search_string" filename.txt
在
filename.txt
文件中搜索 “search_string” 字符串。 -
多个文件搜索:
findstr "search_string" file1.txt file2.txt
在多个文件中搜索 “search_string” 字符串。
-
使用通配符搜索:
findstr "search_string" *.txt
在当前目录下所有
.txt
文件中搜索 “search_string” 字符串。 -
忽略大小写:
findstr /I "search_string" filename.txt
/I
参数使搜索不区分大小写。 -
使用正则表达式:
findstr /R "search_pattern" filename.txt
/R
参数允许使用正则表达式作为搜索模式。 -
排除特定字符串:
findstr /V "exclude_string" filename.txt
/V
参数用于显示不包含 “exclude_string” 的行。 -
列出文件名:
findstr /M "search_string" *.txt
/M
参数仅列出包含匹配字符串的文件名。 -
显示行号:
findstr /N "search_string" filename.txt
/N
参数在输出中包含匹配行的行号。 -
显示匹配字符串的偏移量:
findstr /O "search_string" filename.txt
/O
参数显示匹配字符串在行中的偏移量。 -
使用多个搜索字符串:
findstr "search_string1" "search_string2" filename.txt
在同一个文件中搜索多个字符串。
-
组合多个选项:
findstr /M /N /I "search_string" *.txt
组合使用多个参数,例如列出包含匹配字符串的文件名、显示行号,并且不区分大小写。
-
从标准输入中搜索:
type filename.txt | findstr "search_string"
使用管道符
|
将type
命令的输出传递给findstr
进行搜索。
mkdir
创建一个目录
在 Windows 中:
-
创建一个新目录:
mkdir NewFolder
这将在当前目录下创建一个名为
NewFolder
的新目录。 -
创建多级目录:
mkdir C:\NewFolder\SubFolder
这将在
C:
盘的根目录下创建NewFolder
,然后在NewFolder
内创建SubFolder
。 -
在同一命令中创建多个目录:
mkdir Folder1 Folder2
这将在当前目录下创建两个新目录
Folder1
和Folder2
。
在 Unix/Linux 中:
-
创建一个新目录:
mkdir NewFolder
这将在当前目录下创建一个名为
NewFolder
的新目录。 -
创建多级目录:
mkdir -p NewFolder/SubFolder
-p
参数用于创建多级目录结构,如果上级目录不存在,也会一并创建。 -
在同一命令中创建多个目录:
mkdir Folder1 Folder2
这将在当前目录下创建两个新目录
Folder1
和Folder2
。 -
创建权限为 755 的目录:
mkdir -m 755 NewFolder
-m
参数用于设置新创建目录的权限,这里的 755 表示目录所有者有读、写、执行权限,而组用户和其他用户只有读和执行权限。 -
创建目录并显示消息:
mkdir -v NewFolder
-v
参数用于在创建目录时显示详细信息。 -
创建目录并禁止父目录的继承:
mkdir --no-parent NewFolder
--no-parent
参数用于防止创建父目录。
通用注意事项:
- 使用
mkdir
命令时,如果目标目录已存在,命令将返回错误。在 Unix/Linux 中,可以使用-p
参数来避免这个错误,因为它会创建所有必需的中间目录。 - 在 Windows 中,
mkdir
和md
命令是等效的,md
是mkdir
的简写形式。 - 在 Unix/Linux 中,
mkdir
命令是创建目录的标准命令。
more
逐屏显示输出
-
分页显示文件内容:
more filename.txt
这将分页显示
filename.txt
文件的内容。 -
在命令的输出中使用:
dir | more
这将分页显示
dir
命令的输出,每次显示一屏,允许你按空格键查看下一页。 -
显示多个文件的内容:
more file1.txt file2.txt
这将依次分页显示
file1.txt
和file2.txt
文件的内容。 -
使用
more
命令的/P
参数:more /P filename.txt
/P
参数用于以分页模式显示文件内容,这是more
命令的默认行为。 -
使用
more
命令的/E
参数:more /E filename.txt
/E
参数用于在遇到错误时不停止显示,例如,当文件不存在时。 -
使用
more
命令的/C
参数:more /C filename.txt
/C
参数用于显示控制字符(如换行符)的实际字符,而不是它们的控制代码。 -
使用
more
命令的/S
参数:more /S filename.txt
/S
参数用于抑制空白行的显示,这在查看格式化的文本文件时很有用。 -
使用
more
命令的/T
参数:more /T filename.txt
/T
参数用于将控制字符转换为可打印的字符。 -
使用
more
命令的/X
参数:more /X filename.txt
/X
参数用于在显示文件内容时不显示行号。 -
退出
more
命令:
当你在查看文件内容时,可以通过按Q
键退出more
命令。
move
将一个或者多个文件从一个目录移动到另一个目录
-
移动单个文件:
move source_file destination_file
将
source_file
移动到destination_file
的位置,如果destination_file
已存在,它将被覆盖。 -
移动多个文件到同一目录:
move file1.txt file2.txt destination_directory
将
file1.txt
和file2.txt
移动到destination_directory
目录中。 -
使用通配符移动多个文件:
move *.txt destination_directory
将当前目录下所有扩展名为
.txt
的文件移动到destination_directory
目录中。 -
重命名文件:
move old_name.txt new_name.txt
将
old_name.txt
重命名为new_name.txt
。 -
移动目录:
move source_directory destination_directory
将
source_directory
移动到destination_directory
的位置,如果destination_directory
已存在,source_directory
将被移动到其内部。 -
移动目录及其内容:
move /Y source_directory destination_directory
/Y
参数用于在覆盖文件时不提示确认,这里也用于移动目录及其内容。 -
移动文件时不提示确认:
move /Y file1.txt destination_directory
/Y
参数用于在覆盖文件时不提示确认。 -
显示移动操作的详细信息:
move /V file1.txt destination_directory
/V
参数用于在移动文件时显示详细的进度和状态信息。 -
移动文件并保留原始文件的日期和时间戳:
move /Z file1.txt destination_directory
/Z
参数用于在移动文件时保留原始文件的日期和时间戳。 -
移动文件并允许覆盖只读文件:
move /K file1.txt destination_directory
/K
参数用于移动文件时允许覆盖只读文件。
ren
重命名、文件命名
-
重命名单个文件:
ren oldname.txt newname.txt
将当前目录下名为
oldname.txt
的文件重命名为newname.txt
。 -
使用通配符重命名多个文件:
ren *.old extension.new
将当前目录下所有扩展名为
.old
的文件重命名为扩展名为.new
。 -
添加前缀或后缀到文件名:
-
添加前缀:
ren *.txt prefix*
这将在每个
.txt
文件名前添加prefix
前缀。 -
添加后缀:
ren *.txt *_suffix
这将在每个文件名后添加
_suffix
后缀。
-
-
重命名目录:
ren olddirectory newdirectory
将当前目录下的
olddirectory
目录重命名为newdirectory
。 -
使用变量进行重命名:
set newname=newfilename ren oldfilename %newname%
这将使用变量
newname
的值来重命名oldfilename
。 -
在批处理文件中使用
ren
:
你可以在批处理文件中使用ren
命令来自动化重命名过程。 -
检查重命名操作是否成功:
在某些情况下,你可能希望在重命名操作之后检查操作是否成功。这可以通过条件语句实现:ren oldname.txt newname.txt && echo Renamed successfully || echo Rename failed
如果重命名成功,将显示 “Renamed successfully”;如果失败,则显示 “Rename failed”。
请注意,使用 ren
命令时,确保新的文件名不与现有文件名冲突,否则可能会导致数据丢失。如果目标文件名已存在,ren
命令会提示你是否覆盖现有文件。为了避免这种情况,你可以使用 /y
参数来自动覆盖文件,无需确认:
ren oldname.txt newname.txt /y
这将自动重命名 oldname.txt
为 newname.txt
,即使 newname.txt
已存在也不会提示确认。
如果你需要更多关于 ren
命令的帮助,可以在命令提示符窗口中输入 ren /?
来获取帮助文档。
rmdir
删除目录
-
删除空目录:
rmdir directory_name
删除名为
directory_name
的空目录。 -
删除多个空目录:
rmdir dir1 dir2 dir3
删除多个名为
dir1
、dir2
和dir3
的空目录。 -
删除目录及其子目录:
rmdir /S directory_name
/S
参数用于删除directory_name
目录及其所有子目录和文件。 -
删除目录后不提示确认:
rmdir /Q directory_name
/Q
参数用于在删除目录时不提示确认。 -
删除当前目录及其子目录:
rmdir /S .
这将删除当前目录及其所有子目录和文件。
-
使用通配符删除目录:
rmdir /S *dir_name
这将删除所有以
dir_name
结尾的目录及其子目录。
如果目录中包含文件或其他子目录,而你只想删除空目录,那么 rmdir
命令将失败,除非你使用 /S
参数来删除整个目录树。
type
显示文本内容
-
显示单个文件的内容:
type filename.txt
这将显示当前目录下名为
filename.txt
的文件的内容。 -
显示多个文件的内容:
type file1.txt file2.txt
这将依次显示当前目录下
file1.txt
和file2.txt
文件的内容。 -
使用通配符显示多个文件的内容:
type *.txt
这将显示当前目录下所有扩展名为
.txt
的文件的内容。 -
分页显示文件内容:
type filename.txt | more
使用
|
(管道)将type
命令的输出传递给more
命令,可以分页显示文件内容,方便查看大文件。 -
合并多个文件的内容并显示:
type file1.txt + file2.txt
这将显示
file1.txt
和file2.txt
文件的内容,file2.txt
的内容接在file1.txt
内容之后。 -
显示隐藏文件的内容:
type filename.txt
即使文件是隐藏的,
type
命令也可以显示其内容,只要你知道文件名。 -
将文件内容作为命令执行:
在批处理脚本中,type
命令可以用来显示并执行存储在文件中的命令:@echo off type batchfile.bat
这将显示并执行
batchfile.bat
文件中的命令。 -
显示系统文件的内容:
type filename.sys
type
命令可以显示系统文件的内容,但请注意,直接编辑或修改系统文件可能会导致系统不稳定。
对于非常大的文件,直接使用 type
命令可能会导致屏幕迅速滚动,难以阅读。在这种情况下,使用 type | more
可以更好地查看内容。
attrib
显示或修改文件扩展名关联
-
显示文件属性:
attrib filename
显示指定文件的属性,如只读(R)、隐藏(H)、系统(S)和存档(A)。
-
设置只读属性:
attrib +R filename
给指定文件添加只读属性。
-
清除只读属性:
attrib -R filename
从指定文件移除只读属性。
-
设置隐藏属性:
attrib +H filename
给指定文件添加隐藏属性。
-
清除隐藏属性:
attrib -H filename
从指定文件移除隐藏属性。
-
设置系统属性:
attrib +S filename
给指定文件添加系统属性。
-
清除系统属性:
attrib -S filename
从指定文件移除系统属性。
-
设置存档属性:
attrib +A filename
给指定文件添加存档属性。
-
清除存档属性:
attrib -A filename
从指定文件移除存档属性。
-
同时设置多个属性:
attrib +R +H filename
同时给指定文件添加只读和隐藏属性。
-
使用通配符更改多个文件的属性:
attrib +H *.*
给当前目录下所有文件添加隐藏属性。
-
恢复默认属性:
attrib -H -R -S filename
移除指定文件的所有特殊属性,恢复到默认状态。
-
显示目录和子目录中文件的属性:
attrib /S /D
/S
参数用于包括子目录中的文件,/D
参数用于显示目录属性。 -
更改目录和子目录中文件的属性:
attrib +H /S
给当前目录及其子目录中的所有文件添加隐藏属性。
bcdedit
设置启动数据库中的属性以控制启动加载
-
查看启动配置数据:
bcdedit
这个命令将列出所有的启动配置项。
-
查看帮助信息:
bcdedit /? 或 bcdedit /help
显示
bcdedit
命令的帮助信息。 -
设置启动默认项:
bcdedit /set {default} device partition=C: bcdedit /set {default} integrityservices disable
这些命令将默认启动项设置为 C 盘,并禁用完整性服务。
-
启用或禁用启动菜单(Boot Menu):
bcdedit /set {bootmgr} displaybootmenu yes
这个命令将启用启动菜单。
-
设置操作系统加载选项:
bcdedit /set {current} osdevice partition=C:
这个命令将当前启动项的操作系统设备设置为 C 盘。
-
添加或修改启动项:
bcdedit /create /d "Windows 7" /application osloader bcdedit /set {newGUID} device partition=D:windows bcdedit /set {newGUID} path \Windows\system32\winload.exe bcdedit /displayorder {newGUID} /addlast
这些命令创建一个新的启动项,并将其添加到启动顺序中。
-
删除启动项:
bcdedit /delete {GUID}
这个命令将删除具有指定 GUID 的启动项。
-
恢复默认启动配置:
bcdedit /export C:\BCD_Backup\BCD bcdedit /import C:\BCD_Backup\BCD
这些命令将导出当前的 BCD 存储到指定目录,然后从该目录恢复 BCD 存储。
-
设置启动超时:
bcdedit /timeout 30
这个命令将启动超时设置为 30 秒。
-
启用或禁用安全启动:
bcdedit /set {bootmgr} integrityservices enable bcdedit /set {bootmgr} integrityservices disable
这些命令分别启用和禁用安全启动。
-
设置调试信息:
bcdedit /set {current} debug on bcdedit /set {current} debugtype serial bcdedit /set {current} baudrate 115200
这些命令启用调试,设置调试类型为串行,并设置波特率为 115200。
-
查看启动项的详细信息:
bcdedit /enum bcdedit /enum {bootmgr} bcdedit /enum {current}
这些命令分别列出所有启动项、启动管理器启动项和当前启动项的详细信息。
icacls
显示或修改文件的访问控制列表(acl)
-
查看文件或目录的 ACL:
icacls filename
这将显示
filename
的访问控制列表。 -
递归查看目录及其子目录/文件的 ACL:
icacls directory /T
/T
参数表示递归查看当前目录及其所有子目录和文件的 ACL。 -
修改文件或目录的 ACL:
icacls filename /grant username:permission
/grant
参数用于授予username
对filename
的permission
权限。权限可以是R
(读取)、W
(写入)、M
(修改)等。 -
递归修改目录及其子目录/文件的 ACL:
icacls directory /grant username:permission /T
结合
/T
参数,这条命令会递归地授予username
对directory
及其所有子目录和文件的permission
权限。 -
撤销文件或目录的 ACL 权限:
icacls filename /inheritance
/inheritance
参数用于撤销所有继承的权限。 -
清除文件或目录的所有 ACL 权限:
icacls filename /reset
/reset
参数用于清除所有显式设置的权限,恢复到默认状态。 -
删除文件或目录的特定 ACL 条目:
icacls filename /remove username
/remove
参数用于从filename
的 ACL 中删除username
的权限。 -
递归删除目录及其子目录/文件的特定 ACL 条目:
icacls directory /remove username /T
结合
/T
参数,这条命令会递归地从directory
及其所有子目录和文件的 ACL 中删除username
的权限。 -
查找具有特定权限的文件:
icacls *.* /findsid username
/findsid
参数用于查找所有 ACL 中包含username
的文件。 -
保存 ACL 到文件:
icacls directory > acl.txt
这将把
directory
的 ACL 保存到acl.txt
文件中。 -
从文件恢复 ACL:
icacls directory < acl.txt
这将从
acl.txt
文件中恢复directory
的 ACL。
chcp
显示或设置活动代码页数
-
查看当前代码页:
chcp
这将显示当前活动代码页的编号。
-
更改代码页:
chcp <编号>
将
<编号>
替换为你想要设置的代码页编号。例如,chcp 437
会将代码页更改为美国的 DOS 代码页。 -
设置为 UTF-8 代码页:
chcp 65001
这将设置代码页为 UTF-8,这对于显示多种语言字符非常有用。
-
在批处理文件中更改代码页:
@echo off chcp 65001 >nul echo The code page has been changed to UTF-8.
>nul
用于抑制chcp
命令的输出,使得批处理文件运行时不显示代码页更改的消息。 -
检查特定代码页是否可用:
在更改代码页之前,你可以使用mode
命令查看系统支持的代码页:mode | findstr /C:"Code page"
这将列出所有支持的代码页及其编号。
请注意,更改代码页可能会影响控制台中显示的字符,特别是当你处理非英文字符时。如果你更改了代码页并且发现控制台显示乱码,可以改回原来的代码页来恢复正常显示。通常,Windows 10 和更高版本的默认代码页是 65001(UTF-8),这提供了最好的国际化支持。
comp
比较两个或两套文件的内容
-
比较两个文件:
comp file1 file2
比较
file1
和file2
是否相同。如果文件相同,命令不会显示任何输出;如果不同,它会显示差异。 -
比较两个文件并显示所有差异:
comp file1 file2 /L
/L
参数用于显示所有差异,包括不同之处的行号。 -
比较两个文件并显示不同的字节:
comp file1 file2 /N
/N
参数用于显示不同的字节及其位置。 -
比较两个文件并忽略大小写:
comp file1 file2 /C
/C
参数用于在比较时忽略大小写差异。 -
比较两个文件并显示不同的字节及其十六进制值:
comp file1 file2 /A
/A
参数用于显示不同的字节及其十六进制值。 -
比较两个文件并显示不同的字节及其 ASCII 值:
comp file1 file2 /B
/B
参数用于显示不同的字节及其 ASCII 值。 -
比较两个文件并显示不同的字节及其十六进制和 ASCII 值:
comp file1 file2 /C
/C
参数用于显示不同的字节及其十六进制和 ASCII 值。 -
比较两个目录中的所有文件:
comp dir1\*.* dir2\*.*
这将比较
dir1
和dir2
目录中的所有文件。 -
比较两个目录中的所有文件并递归:
comp dir1\*.* dir2\*.* /S
/S
参数用于递归比较两个目录及其子目录中的所有文件。 -
比较两个目录中的所有文件并忽略时间戳和属性:
comp dir1\*.* dir2\*.* /I
/I
参数用于忽略文件的时间戳和属性,只比较文件内容。
请注意,comp
命令比较的是文件内容,而不是文件名。
date
显示或者设置日期
在 Windows 中:
-
显示当前日期:
date
这将显示当前的日期。
-
设置日期:
date 03-21-2024
这将把日期设置为2024年3月21日。请注意,Windows中的日期格式通常是MM-DD-YYYY。
在 Unix/Linux 中:
-
显示当前日期:
date
这将显示当前的日期和时间。
-
以特定格式显示当前日期:
date +%Y-%m-%d
这将以
YYYY-MM-DD
的格式显示当前日期。 -
设置日期:
sudo date -s "2024-03-21"
这将把日期设置为2024年3月21日。请注意,通常需要管理员权限来设置日期。
-
显示其他时区的日期:
date -u
这将显示UTC(协调世界时)的日期和时间。
-
显示自纪元以来的秒数:
date +%s
这将显示自1970年1月1日(Unix纪元)以来的秒数。
-
格式化日期输出:
date +"Date: %d-%m-%Y Time: %H:%M:%S"
这将显示自定义格式的日期和时间。
注意事项
- 在 Windows 中,
date
命令的使用相对简单,主要用于显示和设置日期。 - 在 Unix/Linux 中,
date
命令更为灵活,支持多种日期和时间的显示和设置选项。 - 在使用
date
命令设置日期时,确保你有足够的权限,因为在大多数系统中,这需要管理员权限。 - 不同的 Linux 发行版可能支持的
date
命令选项有所不同,所以如果需要更多特定的功能,可以查看date
命令的手册页(通过输入man date
)。
diskpart
显示或配置磁盘分区属性
-
启动 diskpart:
diskpart
在命令提示符下输入
diskpart
并按回车,这将启动diskpart
环境。 -
列出所有磁盘:
list disk
在
diskpart
环境中使用此命令来显示所有连接到系统的磁盘。 -
选择特定磁盘:
select disk #
将
#
替换为磁盘编号,以选择要操作的磁盘。 -
创建新的分区:
create partition primary
这将在选定的磁盘上创建一个新的主分区。
-
格式化分区:
format fs=ntfs quick
这将快速格式化选定分区为 NTFS 文件系统。你也可以选择其他文件系统,如
fat32
或exfat
。 -
分配驱动器字母:
assign
这将为选定的分区分配下一个可用的驱动器字母。
-
激活分区:
active
这将激活选定的分区,使其成为启动分区。
-
删除分区:
delete partition override
使用
override
参数可以跳过确认提示,直接删除分区。 -
退出 diskpart:
exit
这将退出
diskpart
环境,返回到命令提示符。 -
扩展现有分区:
extend size=#
这将扩展选定分区的大小,
#
是你想要扩展的大小(单位为MB)。 -
收缩分区:
shrink desired=#
这将收缩选定分区的大小,
#
是你想要收缩的大小(单位为MB)。 -
列出所有分区:
list partition
在
diskpart
环境中使用此命令来显示当前选定磁盘上的所有分区。 -
选择特定分区:
select partition #
将
#
替换为分区编号,以选择要操作的分区。 -
清理磁盘:
clean
这将删除所有分区并清理磁盘,使其成为一个没有分区的“干净”磁盘。
doskey
编辑命令行,撤回Windows命令
-
创建宏:
doskey hello=echo Hello, World!
这将创建一个名为
hello
的宏,当你在命令行中输入hello
并按回车时,它将执行echo Hello, World!
命令。 -
执行宏:
hello
这将执行之前定义的
hello
宏,输出 “Hello, World!”。 -
查看宏定义:
doskey /macros
这将列出所有已定义的宏。
-
查看特定宏的定义:
doskey hello
这将显示
hello
宏的定义。 -
修改宏:
doskey hello=echo Hello, World! This is a new line.
这将修改
hello
宏,添加一行新的文本。 -
删除宏:
doskey hello=
这将删除
hello
宏。 -
重用命令历史:
doskey history
这将显示命令历史的列表,你可以使用箭头键选择并执行。
-
执行历史命令:
doskey -n=命令编号
-n
参数后面跟命令编号,可以执行特定的历史命令。 -
编辑命令行:
在命令行中,你可以按Ctrl + A
选择整个命令行,Ctrl + U
删除光标之前的文本,Ctrl + K
删除光标之后的所有文本,Ctrl + Y
粘贴剪贴板内容。 -
创建带参数的宏:
doskey say=echo You said: $1
这将创建一个名为
say
的宏,你可以在后面添加参数,例如say hello
将输出 “You said: hello”。 -
使用环境变量:
doskey path=echo %PATH%
这将创建一个
path
宏,显示当前的PATH
环境变量。 -
创建带多个参数的宏:
doskey copy=copy $1 $2
这将创建一个
copy
宏,你可以复制文件,例如copy file1.txt C:\destination
。
driverquery
显示当前设备驱动程序状态和属性
-
基本用法:
driverquery
这将列出所有设备驱动程序的基本信息,包括驱动程序名称、服务名称、启动类型、状态等。
-
显示详细状态:
driverquery /v
/v
参数用于显示驱动程序的详细状态信息,包括驱动程序的路径、版本、日期和供应商。 -
显示格式信息:
driverquery /fo format
/fo
参数用于指定输出格式,format
可以是TABLE
、LIST
或CSV
。例如:/fo TABLE
:以表格格式显示输出(默认)。/fo LIST
:以列表格式显示输出。/fo CSV
:以逗号分隔值(CSV)格式显示输出,适合导入到表格处理软件中。
-
显示特定属性:
driverquery /si
/si
参数用于显示每个驱动程序的签名信息,包括是否已签名和签名者。 -
显示驱动程序组:
driverquery /ihv
/ihv
参数用于显示独立硬件供应商(IHV)的驱动程序。 -
显示过时的驱动程序:
driverquery /obsolete
/obsolete
参数用于显示已过时的驱动程序。 -
显示驱动程序的数字签名状态:
driverquery /signer
/signer
参数用于显示驱动程序的数字签名状态。 -
显示驱动程序的详细信息:
driverquery /status
/status
参数用于显示驱动程序的状态信息。 -
显示驱动程序的加载时间:
driverquery /t
/t
参数用于显示驱动程序的加载时间。 -
显示驱动程序的级别:
driverquery /wl
/wl
参数用于显示 Windows 驱动程序级别的信息。
这些是 driverquery
命令的一些基本用法。你可以组合使用这些参数来获取不同的信息。例如,driverquery /v /fo LIST
会以列表格式显示驱动程序的详细状态信息。
fc
比较两个文件集并显示他们之间的不同
-
比较两个文件:
fc file1.txt file2.txt
这将比较
file1.txt
和file2.txt
,并显示它们之间的差异。 -
使用通配符比较多个文件:
fc *.c *.h
这将比较当前目录下所有
.c
文件与所有.h
文件,并显示它们之间的差异。 -
比较两个目录中的文件:
fc dir1\*.c dir2\*.c
这将比较
dir1
目录和dir2
目录中所有.c
文件,并显示它们之间的差异。 -
使用
/A
参数以 ASCII 格式比较文件:fc /A file1.txt file2.txt
/A
参数指定以 ASCII 格式比较文件。 -
使用
/B
参数以二进制格式比较文件:fc /B file1.bin file2.bin
/B
参数指定以二进制格式比较文件。 -
使用
/C
参数忽略大小写:fc /C file1.txt file2.txt
/C
参数在比较时忽略大小写差异。 -
使用
/L
参数忽略行尾字符:fc /L file1.txt file2.txt
/L
参数在比较时忽略行尾字符差异。 -
使用
/N
参数使用逻辑比较:fc /N file1.txt file2.txt
/N
参数在比较时不区分文件名的大小写。 -
使用
/T
参数显示行号:fc /T file1.txt file2.txt
/T
参数在显示差异时包括行号。 -
使用
/U
参数以 Unicode 格式比较文件:fc /U file1.txt file2.txt
/U
参数指定以 Unicode 格式比较文件。 -
使用
/W
参数并排显示差异:fc /W file1.txt file2.txt
/W
参数以并排格式显示两个文件的差异。 -
使用
/XX
参数比较文件时忽略 extra lines:fc /XX file1.txt file2.txt
/XX
参数在比较时忽略文件中的额外行。 -
使用
/Y
参数自动回答“否”:fc /Y file1.txt file2.txt
/Y
参数在提示是否覆盖时自动回答“否”。 -
使用
/Q
参数快速比较:fc /Q file1.txt file2.txt
/Q
参数执行快速比较,不显示任何差异。
for
为一组文件中的每个文件运行一个指定命令
在 Windows cmd 中:
-
遍历文件:
for %f in (*.txt) do echo %f
这将对当前目录下每个
.txt
文件执行echo
命令,显示文件名。 -
遍历目录:
for /d %d in (*) do echo %d
这将对当前目录下的每个子目录执行
echo
命令,显示目录名。 -
使用变量:
for /L %i in (1,1,5) do echo %i
这将从 1 到 5 执行循环,每次增加 1,并显示当前的数字。
-
对文件执行操作:
for %f in (*.txt) do copy %f C:\destination
这将把当前目录下所有
.txt
文件复制到C:\destination
目录。 -
条件执行:
for /F "tokens=*" %i in ('dir /b /a:-d') do if exist %i echo %i
这将列出当前目录下所有非目录文件,并显示它们的名字。
在 Unix/Linux bash 中:
-
遍历列表:
for i in {1..5}; do echo $i; done
这将显示数字 1 到 5。
-
遍历文件:
for file in *.txt; do echo $file; done
这将对当前目录下每个
.txt
文件执行echo
命令,显示文件名。 -
使用 C 风格的 for 循环:
for (( i=0; i<5; i++ )); do echo $i; done
这将从 0 到 4 执行循环,并显示当前的数字。
-
遍历命令输出:
for user in $(getent passwd); do echo $user; done
这将遍历系统上的所有用户,并显示它们的用户名。
-
条件执行:
for file in *.txt; do if [ -f "$file" ]; then echo $file; fi; done
这将只对当前目录下存在的
.txt
文件执行echo
命令。
fsutil
显示或配置文件系统属性
-
清理(Defragmentation):
fsutil volume defrag [drive]
对指定的驱动器进行碎片整理。
-
磁盘清理(File System Cleanup):
fsutil behavior set DisableLastAccess 0
启用记录文件最后访问时间。
fsutil behavior set DisableLastAccess 1
禁用记录文件最后访问时间,可以提高性能。
-
文件锁定管理:
fsutil file lock [path]
锁定指定的文件。
fsutil file unlock [path]
解锁指定的文件。
-
对象 ID管理:
fsutil objectid assign [path]
为指定路径的文件或目录分配一个新的对象 ID。
fsutil objectid query [path]
查询指定路径的文件或目录的对象 ID。
-
配额管理:
fsutil quota query [volume]
查询指定卷的磁盘配额信息。
fsutil quota modify [volume] [quota_limit]
修改指定卷的磁盘配额限制。
fsutil quota track [volume] enable
启用指定卷的磁盘配额跟踪。
-
USN日志管理:
fsutil usn readjournal [volume] [startid] [length]
读取指定卷的 USN 日志。
fsutil usn createjournal [volume] [size]
为指定卷创建 USN 日志。
-
卷信息查询:
fsutil volume diskfree [drive]
显示指定驱动器的可用空间。
fsutil volume filelayout [path]
显示指定文件的文件布局信息。
-
脏位检查:
fsutil dirty query [volume]
查询指定卷是否为脏(即是否需要检查磁盘)。
-
重置日志文件大小:
fsutil logfile resize [size]
调整系统日志文件的大小。
-
修复坏扇区:
fsutil repair enable [drive]
启用对指定驱动器的坏扇区修复。
fsutil repair disable [drive]
禁用对指定驱动器的坏扇区修复。
-
重新解析名称:
fsutil reparsepoint query [path]
查询指定路径的符号链接或重解析点信息。
-
设置短名称:
fsutil behavior set disable8dot3 0
启用 8.3 格式的短名称。
fsutil behavior set disable8dot3 1
禁用 8.3 格式的短名称。
ftype
显示或修改在文件扩展名关联使用的文件类型
-
显示特定文件类型的关联:
ftype type
将
type
替换为你想要查询的文件类型(例如txtfile
)。这将显示与该文件类型关联的命令。 -
显示所有文件类型的关联:
ftype
这个命令将列出所有已注册的文件类型及其关联的命令。
-
修改文件类型的关联:
ftype type=command
将
type
替换为文件类型(例如txtfile
),将command
替换为当文件被双击时执行的命令。例如:ftype txtfile=notepad.exe %1
这将设置
.txt
文件的默认打开程序为记事本。 -
删除文件类型的关联:
ftype type=
将
type
替换为要删除的文件类型。这将删除该文件类型的关联。 -
为可执行文件设置关联:
ftype exefile=%1 %*
这将设置
.exe
文件类型的关联,使得双击可执行文件时会运行该文件。 -
为批处理文件设置关联:
ftype batfile=%SystemRoot%\System32\cmd.exe /c %1 %*
这将设置
.bat
文件类型的关联,使得双击批处理文件时会使用命令提示符运行该文件。 -
为快捷方式设置关联:
ftype lnkfile=%SystemRoot%\System32\rundll32.exe %SystemRoot%\System32\shell32.dll,OpenAs_RunDLL %1
这将设置
.lnk
文件类型的关联,使得双击快捷方式时会打开关联的程序。
gpresult
显示计算机或者用户组策略信息
-
显示用户或计算机的组策略设置:
gpresult
不带任何参数运行
gpresult
将显示当前用户的组策略设置。 -
显示详细的组策略信息:
gpresult /h report.html
/h
参数允许你将结果输出到一个 HTML 文件中,这使得信息更易于阅读和共享。这里,结果被保存到report.html
文件中。 -
显示特定的组策略设置:
gpresult /r
/r
参数用于显示被应用的组策略设置的摘要,而不是完整的策略信息。 -
显示所有本地组策略设置:
gpresult /x report.xml
/x
参数将结果输出为 XML 文件,这对于自动化处理非常有用。这里,结果被保存到report.xml
文件中。 -
显示用户和计算机的组策略设置:
gpresult /s computer /user username /h report.html
/s
参数指定要查询的计算机,/user
参数指定要查询的用户。这将为指定的计算机和用户生成一个 HTML 报告。 -
显示只包含特定策略的报告:
gpresult /f "Software Settings" /h report.html
/f
参数允许你指定一个特定的功能领域,比如 “Software Settings”,以生成只包含该领域设置的报告。 -
显示组策略设置的详细模式:
gpresult /v
/v
参数用于显示详细的组策略设置,包括未被应用的设置。 -
显示组策略设置的摘要:
gpresult /z
/z
参数用于显示组策略设置的摘要,包括被应用的和未被应用的设置。 -
显示组策略设置的详细模式,并排除未被应用的设置:
gpresult /v /x report.xml
这将生成一个包含所有设置的详细 XML 报告,但不包括未被应用的设置。
mklink
创建符号链接和硬链接
创建符号链接(软链接)
-
创建指向文件的符号链接:
mklink linkname target
这将创建一个名为
linkname
的符号链接,指向target
文件。 -
创建指向目录的符号链接:
mklink /D linkname targetdir
使用
/D
参数创建一个指向目录的符号链接。linkname
是链接的名称,targetdir
是目标目录的路径。
创建硬链接
-
创建指向文件的硬链接:
mklink linkname target
在 Windows 中,
mklink
默认创建硬链接,而不是符号链接。硬链接直接指向文件数据,而不是文件名。
使用管理员权限
- 以管理员权限运行 mklink:
由于创建符号链接可能需要管理员权限,你可能需要以管理员身份运行命令提示符。在 Windows 中,你可以通过右键点击命令提示符程序并选择“以管理员身份运行”来实现。
示例
-
创建指向特定文件的符号链接:
mklink C:\Links\Notepad.lnk C:\Windows\System32\notepad.exe
这将在
C:\Links
目录下创建一个名为Notepad.lnk
的符号链接,指向C:\Windows\System32\notepad.exe
文件。 -
创建指向特定目录的符号链接:
mklink /D C:\Links\MyDocs C:\Users\Username\Documents
这将在
C:\Links
目录下创建一个名为MyDocs
的符号链接,指向C:\Users\Username\Documents
目录。
注意事项
- 符号链接在 Windows 中有一些限制,例如不能跨卷(即不能链接到不同驱动器上的文件或目录)。
- 硬链接也有一些限制,例如不能链接到目录,且链接的文件必须位于同一卷上。
- 使用
mklink
时,确保目标文件或目录的路径正确无误,否则链接将无法正确创建。
openfiles
显示远程用户通过文件共享打开的本地文件
-
列出所有打开的文件:
openfiles
不带参数运行
openfiles
会显示当前用户所有打开的文件。 -
以特定用户身份列出打开的文件:
openfiles /S 计算机名 /U 用户名 /P 密码
/S
参数后跟远程计算机的名称,/U
和/P
参数分别用于指定用户名和密码,以该用户的身份列出打开的文件。 -
列出特定用户打开的文件:
openfiles /U 用户名 /P 密码
使用
/U
和/P
参数可以列出特定用户打开的文件。 -
断开打开的文件:
openfiles \\\\?\C:\path\to\file
使用文件的完整路径来指定要断开的文件。
-
断开特定用户打开的文件:
openfiles \\\\?\C:\path\to\file /U 用户名 /P 密码
结合
/U
和/P
参数,可以指定以哪个用户的身份断开文件。 -
显示文件的详细信息:
openfiles /query /s
/query
参数用于查询,/s
参数用于显示所有打开的文件的详细信息。 -
断开所有打开的文件:
openfiles /d
/d
参数用于断开所有打开的文件。 -
断开特定类型的文件:
openfiles /localonly /filter "\\*.txt"
/localonly
参数用于只显示本地计算机上的文件,/filter
参数后跟通配符可以指定文件类型。
path
为可执行文件显示或者设置搜索路径
-
显示当前的路径:
path
这将显示当前的路径环境变量,即系统会搜索可执行文件的目录列表。
-
设置路径环境变量:
path C:\Program Files;C:\Windows\System32
这将设置路径环境变量为指定的目录列表。目录之间用分号(在 Windows 中)分隔。
-
添加目录到当前路径:
path %PATH%;C:\NewDirectory
这将
C:\NewDirectory
添加到当前的路径环境变量中。%PATH%
是一个环境变量,代表当前的路径。 -
从路径中移除目录:
path %PATH%;C:\OldDirectory
如果你想要移除
C:\OldDirectory
目录,你需要将其从路径环境变量中删除。这通常需要一些额外的步骤,因为path
命令本身不支持直接删除单个目录。你可以使用pathedit
这样的第三方工具,或者手动编辑环境变量。 -
在命令行中临时修改路径:
path C:\Temp;%PATH%
这将在当前命令行会话中临时将
C:\Temp
添加到路径的开头。这种修改只对当前会话有效,关闭命令行窗口后修改将不再生效。 -
使用
setx
命令永久修改路径:setx PATH "C:\NewDirectory;%PATH%"
setx
命令用于永久修改环境变量,包括路径。这条命令会在现有路径的基础上添加C:\NewDirectory
。
set
显示、设置或删除windows环境变量
-
显示所有环境变量:
set
这将列出当前会话中的所有环境变量及其值。
-
显示特定的环境变量:
set VariableName
将
VariableName
替换为你想要查看的环境变量的名称。 -
设置或修改环境变量:
set VariableName=VariableValue
这将设置或修改一个环境变量
VariableName
并赋予它VariableValue
的值。 -
删除环境变量:
set VariableName=
这将删除名为
VariableName
的环境变量。 -
在批处理文件中使用:
在批处理文件中,set
命令可以用来设置局部变量,这些变量只在批处理文件执行期间有效。setlocal set MyVar=somevalue echo %MyVar% endlocal
-
使用变量延迟扩展:
在批处理文件中,可以使用/a
选项来启用变量延迟扩展,这样变量的值在执行时才被解析。setlocal enabledelayedexpansion for %%i in (*.txt) do ( set "filename=%%i" echo !filename! ) endlocal
-
显示当前命令行窗口的环境变量:
set $=
这将显示当前命令行窗口的所有环境变量。
-
在命令行中使用变量:
你可以在命令行中使用%VariableName%
来引用环境变量的值。echo %PATH%
-
在批处理文件中使用变量:
在批处理文件中,使用%VariableName%
来引用局部变量的值。set MyVar=Hello echo %MyVar%
-
递增变量值:
set /a Counter+=1
/set /a
用于执行算术运算,这里将Counter
变量的值递增 1。
sc
显示或者配置服务(后台进程)
-
查询服务状态:
-
查询所有服务的状态:
sc query
-
查询特定服务的状态:
sc query [服务名]
这将显示服务的当前状态和配置信息 。
-
-
控制服务:
-
启动服务:
sc start [服务名]
-
停止服务:
sc stop [服务名]
-
强制停止服务:
sc stop [服务名] /f
-
暂停服务:
sc pause [服务名]
-
继续服务:
sc continue [服务名]
这些命令用于控制服务的启动、停止、暂停和继续 。
-
-
配置服务:
-
修改服务启动类型:
sc config [服务名] start= [启动类型]
启动类型可以是
auto
,demand
,disabled
等 。 -
修改服务描述:
sc description [服务名] [描述]
这将更改服务的描述 。
-
-
创建和删除服务:
-
创建服务:
sc create [服务名] binPath= "路径到服务的可执行文件"
-
删除服务:
sc delete [服务名]
这些命令用于在注册表和“服务控制管理器”中创建或删除服务 。
-
-
设置服务的依赖项:
sc config [服务名] depend= [依赖服务]
这将设置服务的依赖项,即在该服务启动之前必须启动的服务 。
-
查询服务配置信息:
sc qc [服务名]
这将显示服务的配置信息 。
-
更改服务的登录账户:
sc config [服务名] obj= "NT AUTHORITY\LocalService" password= ""
这将服务的登录账户配置为
LocalService
帐户,并且不使用密码 。 -
更多信息:
如果想了解更多sc
命令的用法,可以在 CMD 中输入以下命令查看帮助:sc help
或者获取特定命令的帮助:
sc [命令] help
这将显示
sc
命令的帮助文档内容 。
schtasks
安排一台计算机上运行命令和程序
创建计划任务(/Create)
schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...]] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]]
/tn TaskName
:指定任务的名称。/tr TaskRun
:指定任务运行的程序或命令的路径。/sc schedule
:指定计划类型,如MINUTE
、HOURLY
、DAILY
、WEEKLY
、MONTHLY
、ONCE
、ONSTART
、ONLOGON
、ONIDLE
。/mo modifier
:指定任务在其计划类型内的运行频率。/d day
:指定周或月中运行任务的日期。/m month[,month...]
:指定一年中的月份。/i IdleTime
:指定任务启动前系统必须空闲的分钟数,仅对ONIDLE
计划有效。/st StartTime
:指定任务开始时间。/sd StartDate
:指定任务开始的日期。/ed EndDate
:指定任务结束的日期。/s computer
:指定远程计算机名称。/u [domain\]user
:指定用户上下文。/p password
:指定用户密码。/ru {[Domain\]User | "System"}
:指定任务运行的用户帐户。/rp Password
:指定运行方式用户的密码。
查询计划任务(/Query)
schtasks /query [/s computer [/u [domain\]user /p password]] [/fo {TABLE | LIST | CSV}] [/nh] [/v]
/s computer
:指定远程计算机名称。/u [domain\]user
:指定用户上下文。/p password
:指定用户密码。/fo {TABLE | LIST | CSV}
:指定输出格式。/nh
:不显示标题行。/v
:显示详细输出。
删除计划任务(/Delete)
schtasks /delete /tn TaskName [/s computer [/u [domain\]user /p password]] [/f]
/tn TaskName
:指定要删除的任务名称。/s computer
:指定远程计算机名称。/u [domain\]user
:指定用户上下文。/p password
:指定用户密码。/f
:强制删除任务,不提示确认。
更改计划任务(/Change)
schtasks /change /tn TaskName [/s computer [/u [domain\]user /p password]] [/tr TaskRun] [/st StartTime] [/ri Interval] [/et EndTime] [/sd StartDate] [/ed EndDate] [/K] [/RU {[Domain\]User | "System"} [/RP Password]]
/tn TaskName
:指定要更改的任务名称。/tr TaskRun
:指定新的程序或命令路径。/st StartTime
:指定新的开始时间。/ri Interval
:指定新的重复间隔。/et EndTime
:指定新的结束时间。/sd StartDate
:指定新的开始日期。/ed EndDate
:指定新的结束日期。/K
:在任务完成后保持任务状态。/RU {[Domain\]User | "System"}
:指定新的运行用户帐户。/RP Password
:指定新的运行方式用户的密码。
运行计划任务(/Run)
schtasks /run /tn TaskName [/s computer [/u [domain\]user /p password]]
/tn TaskName
:指定要运行的任务名称。/s computer
:指定远程计算机名称。/u [domain\]user
:指定用户上下文。/p password
:指定用户密码。
中止计划任务(/End)
schtasks /end /tn TaskName [/s computer [/u [domain\]user /p password]]
/tn TaskName
:指定要中止的任务名称。/s computer
:指定远程计算机名称。/u [domain\]user
:指定用户上下文。/p password
:指定用户密码。
shutdown
允许通过本地或远程方式正确关闭计算机
-
立即关闭计算机:
shutdown /s
这将立即关闭计算机。
-
立即重启计算机:
shutdown /r
这将立即重启计算机。
-
取消关机或重启操作:
shutdown /a
如果系统已经安排了关机或重启,这个命令可以取消它。
-
设置关机或重启的倒计时:
shutdown /s /t 60
/t
参数后面跟的数字表示倒计时的秒数,这里设置为60秒后关机。 -
重启计算机并设置倒计时:
shutdown /r /t 30
这将在30秒后重启计算机。
-
指定关机或重启的原因:
shutdown /s /c "System maintenance"
/c
参数后面跟的文本是关机或重启的原因,这里设置为 “System maintenance”。 -
远程关机:
shutdown /m \\ComputerName /s
这将关闭指定的远程计算机,将
ComputerName
替换为远程计算机的名称或IP地址。 -
重启远程计算机:
shutdown /m \\ComputerName /r
这将重启指定的远程计算机。
-
强制关闭运行的应用程序:
shutdown /f
/f
参数用于强制关闭所有运行的应用程序,不保存数据。 -
重启计算机并更新系统设置:
shutdown /r /o
/o
参数用于在重启时更新系统设置。 -
显示帮助信息:
shutdown /?
这将显示
shutdown
命令的帮助信息。
start
启动单独的窗口以运行指定的程序或者命令
-
删除单个文件:
erase filename
删除当前目录下的
filename
文件。 -
删除多个文件:
erase file1.txt file2.txt
删除当前目录下的
file1.txt
和file2.txt
文件。 -
使用通配符删除多个文件:
erase *.txt
删除当前目录下所有扩展名为
.txt
的文件。 -
强制删除只读文件:
erase /F filename
/F
参数用于强制删除只读文件。 -
删除文件时不提示确认:
erase /Q filename
/Q
参数用于在删除文件时不提示确认。 -
删除目录及其子目录中的所有文件:
erase /S *.*
/S
参数用于删除当前目录及其所有子目录中的所有文件。 -
删除隐藏文件:
erase /A:H *.*
/A:H
参数用于删除所有隐藏文件。 -
删除系统文件:
erase /A:S *.*
/A:S
参数用于删除所有系统文件。 -
删除存档属性的文件:
erase /A:A *.*
/A:A
参数用于删除所有具有存档属性的文件。 -
删除文件并禁止错误报告:
erase /AR *.*
/AR
参数用于删除所有文件,并且如果发生错误,不显示错误报告。 -
删除文件并显示删除的文件列表:
erase /L *.*
/L
参数用于显示将要删除的文件列表,但不实际删除文件。
systeminfo
显示计算机的特定属性和配置
-
显示本地计算机的信息:
systeminfo
这将显示本地计算机的系统信息。
-
显示远程计算机的信息:
systeminfo \\ComputerName
将
ComputerName
替换为远程计算机的名称或 IP 地址。 -
使用用户名和密码显示远程计算机的信息:
systeminfo \\ComputerName\username\password
这将使用提供的用户名和密码来显示远程计算机的系统信息。
-
显示特定属性的信息:
systeminfo | findstr /C:"OS Name"
findstr
命令用于搜索特定的字符串,这里用来显示操作系统名称。 -
显示特定范围的属性信息:
systeminfo | findstr /C:"OS Name" /C:"OS Version"
这将同时显示操作系统名称和版本。
-
以特定格式输出信息:
systeminfo /fo csv > systeminfo.csv
/fo
参数用于指定输出格式,这里使用 CSV 格式,并且将输出重定向到systeminfo.csv
文件。 -
以特定格式输出信息并包括隐藏属性:
systeminfo /fo csv /nh > systeminfo.csv
/nh
参数用于包括通常隐藏的属性。 -
以特定格式输出信息并排除特定属性:
systeminfo /fo list | findstr /v /C:"BIOS Version"
这里使用
/v
参数来排除搜索结果中的特定字符串。 -
以特定格式输出信息并排除多个属性:
systeminfo /fo list | findstr /v /C:"BIOS Version" /C:"Processor"
这将排除 BIOS 版本和处理器信息。
-
以特定格式输出信息并排除多个属性,同时包括隐藏属性:
systeminfo /fo list | findstr /v /C:"BIOS Version" /C:"Processor" /r
/r
参数用于正则表达式搜索,这里用于排除多个属性。
tasklist
显示包括服务在内的所有当前运行的任务
-
显示所有运行中的进程:
tasklist
这将列出所有当前运行的进程。
-
显示特定进程:
tasklist | findstr "processname"
将
"processname"
替换为你想要查找的进程名称,这将搜索并高亮显示包含该名称的进程。 -
显示进程的详细信息:
tasklist /fo list
/fo list
参数以简单列表格式显示进程。 -
显示进程的详细信息,并包括服务标签:
tasklist /svc
/svc
参数显示每个进程所关联的服务。 -
显示进程的详细信息,并包括用户信息:
tasklist /fi "username eq username"
将
"username"
替换为实际的用户名,这将显示该用户启动的所有进程。 -
按映像名称排序:
tasklist /fo table /order IMAGENAME
/fo table
参数以表格格式显示进程,/order IMAGENAME
按映像名称排序。 -
显示特定用户的进程:
tasklist /fi "username eq username"
显示指定用户的进程。
-
显示进程的扩展信息:
tasklist /fo csv /nh
/fo csv
参数以逗号分隔值(CSV)格式显示进程,/nh
参数不显示表头。 -
显示进程的扩展信息,并包括服务信息:
tasklist /fo csv /nh /svc
结合
/svc
参数显示服务信息。 -
显示进程的扩展信息,并包括会话信息:
tasklist /fi "SESSION: eq 0" /fo list
/fi "SESSION: eq 0"
过滤条件用于显示会话 ID 为 0 的进程。 -
显示进程的扩展信息,并包括会话和服务信息:
tasklist /fi "SESSION: eq 0" /fo csv /nh /svc
-
显示进程的扩展信息,并包括环境变量:
tasklist /m
/m
参数显示进程加载的模块。 -
显示进程的扩展信息,并包括服务状态:
tasklist /fi "status eq running"
/fi "status eq running"
过滤条件用于显示状态为运行中的进程。
taskkill
终止正在运行的进程或应用程序
-
通过进程 ID (PID) 终止进程:
taskkill /PID 1234
这将终止 PID 为 1234 的进程。
-
通过进程名称终止进程:
taskkill /IM notepad.exe
/IM
参数后面跟进程的映像名称(即进程名),这将终止所有名为notepad.exe
的进程。 -
强制终止进程:
taskkill /F /IM notepad.exe
/F
参数用于强制终止进程。 -
通过进程组终止进程:
taskkill /FI "WINDOWTITLE eq Notepad"
/FI
参数后面跟筛选器,这里使用窗口标题来终止进程。 -
终止所有与服务相关的进程:
taskkill /F /IM * /SVC
/SVC
参数用于终止所有与服务相关的进程。 -
终止特定用户下的进程:
taskkill /F /PID 1234 /U username /P password
/U
和/P
参数分别用于指定用户和密码,这将终止指定用户下 PID 为 1234 的进程。 -
终止进程并重启该进程:
taskkill /F /IM notepad.exe /RESTART
/RESTART
参数用于在终止进程后自动重启该进程。 -
终止进程并显示状态信息:
taskkill /IM notepad.exe /T /F
/T
参数用于终止指定进程及其子进程。 -
使用通配符终止多个进程:
taskkill /IM *chrome*
这将终止所有映像名称中包含
chrome
的进程。 -
通过服务名称终止进程:
taskkill /IM svchost.exe /SVC
/SVC
参数用于终止与指定服务相关的进程。
tree
树状图:
在 Windows 中:
-
显示当前目录的树状图:
tree
这将显示当前目录及其所有子目录的树状图。
-
指定根目录:
tree C:\path\to\directory
这将显示从指定路径开始的目录树。
-
显示指定层级的目录树:
tree /F /L 2
/F
参数显示每个目录中文件的名称,/L
参数后跟数字指定显示的层级数。 -
显示隐藏文件和目录:
tree /A
/A
参数显示隐藏的文件和目录。 -
以图形方式显示目录树:
tree /A /F
/A
显示隐藏文件,/F
显示文件名。 -
将输出保存到文件:
tree /F > directory_tree.txt
这将把目录树的输出重定向到
directory_tree.txt
文件中。 -
递归显示目录树:
tree /F /A /S
/S
参数用于递归显示所有子目录。
在 Unix/Linux 中:
-
显示当前目录的树状图:
tree
这将显示当前目录及其所有子目录的树状图。
-
指定根目录:
tree /path/to/directory
这将显示从指定路径开始的目录树。
-
显示指定层级的目录树:
tree -L 2
-L
参数后跟数字指定显示的层级数。 -
显示隐藏文件和目录:
tree -a
-a
参数显示隐藏的文件和目录。 -
以图形方式显示目录树:
tree -a
-a
显示隐藏文件。 -
将输出保存到文件:
tree > directory_tree.txt
这将把目录树的输出重定向到
directory_tree.txt
文件中。 -
递归显示目录树:
tree -I
-I
参数用于递归显示所有子目录。
time
显示或设置系统时间=
-
显示当前系统时间:
time
这将显示当前的系统时间。
-
设置系统时间:
time 08:00:00
这将把系统时间设置为上午8点整。时间格式通常是小时:分钟:秒。
-
使用12小时制设置时间:
time 08:00:00 AM
这将把系统时间设置为上午8点整。AM/PM 表示上午/下午。
-
使用24小时制设置时间:
time 20:00:00
这将把系统时间设置为晚上8点整。
-
仅设置时间的小时和分钟:
time 13:45
这将把系统时间的小时设置为13(下午1点),分钟设置为45,秒数保持不变。
在 Unix/Linux 系统中,time
命令通常用于测量命令执行所需的时间。
-
测量单个命令的执行时间:
time ls -l
这将显示
ls -l
命令执行所需的时间。 -
测量脚本的执行时间:
time ./myscript.sh
这将显示执行
myscript.sh
脚本所需的时间。
tracert
网络路径跟踪
在 Windows 中:
-
基本用法:
tracert www.example.com
这将显示从你的计算机到
www.example.com
的路径。 -
指定最大跃点数:
tracert -h 15 www.example.com
-h
参数后面跟的数字指定了最大跃点数,这里是 15。 -
使用 DNS 名称而不是 IP 地址:
tracert -d www.example.com
-d
参数防止tracert
将 IP 地址解析为主机名。 -
指定数据包大小:
tracert -b 512 www.example.com
-b
参数后面跟的数字指定了要发送的数据包大小,这里是 512 字节。 -
指定最大 TTL(Time to Live)值:
tracert -j 255 www.example.com
-j
参数后面跟的数字指定了最大 TTL 值,这里是 255。 -
指定多个跃点:
tracert -p 3 www.example.com
-p
参数后面跟的数字指定了要使用的跃点数,这里是 3。 -
指定间隔时间:
tracert -w 1000 www.example.com
-w
参数后面跟的数字指定了每次查询之间的等待时间,单位是毫秒,这里是 1000 毫秒。
在 Unix/Linux 中:
-
基本用法:
traceroute www.example.com
这将显示从你的计算机到
www.example.com
的路径。 -
指定最大跃点数:
traceroute -m 15 www.example.com
-m
参数后面跟的数字指定了最大跃点数,这里是 15。 -
使用 DNS 名称而不是 IP 地址:
traceroute -I www.example.com
-I
参数用于发送 ICMP ECHO 请求而不是 UDP 数据包。 -
指定端口号:
traceroute -p 33434 www.example.com
-p
参数后面跟的数字指定了要使用的端口号,这里是 33434。 -
指定数据包大小:
traceroute -q 3 -l 512 www.example.com
-q
参数后面跟的数字指定了要发送的查询次数,-l
参数后面跟的数字指定了数据包大小,这里是 512 字节。 -
指定间隔时间:
traceroute -w 1 www.example.com
-w
参数后面跟的数字指定了每次查询之间的等待时间,单位是秒,这里是 1 秒。
未完待续。。。
标签:文件,显示,删除,Windows,指定,学习,命令,参数,txt From: https://blog.csdn.net/Bodhi_77/article/details/143440669