Microsoft Windows概述
Microsoft Windows优点
- 强大的图形化界面
- 用户群体庞大
- 硬件兼容
- 简单易用
CMD、PowerShell概述
•
开始菜单
/
快捷键
Win + R
→→
键入
cmd
或
powershell
•
Shift +
右键单击空白处
→
→
“在此处打开
Powershell
窗口”
CMD 指令
命令行格式类似 Linux Shell:
<command> <arg 1> … <arg n>
•
参数可以是文件名、路径、选项
•
文件名:与
Linux
相同
(e.g.
myfile.txt
)
•
路径:与
Linux
稍有不同
(e.g.
D:\Program Files\python
)
•
惯用
‘
\
’
,有时也支持
‘
/
’
•
开头为盘符
(e.g.
C:
,
D:
)
•
选项:以
‘/’
或
‘-’
开头,后面一般跟一个字母
(e.g.
erase /f myfile.txt
)
•
空格和引号的含义不规律
•
重定向和管道与
Linux
一样
账户权限
•
Windows
中三类不同权限的账户
•
管理员账户
:
最高权限
,完全使用计算机,可管理其他账户
•
标准用户账户
:可以
访问计算机
、
执行程序
,无法
更改影响其他用户的设置
以及
系统设置
、
安装软件
•
来宾账户
:用于临时访问,无法
更改系统设置
、
安装应用
、
访问私密文件
•
为程序提升权限
——
“以管理员身份运行”
•
访问控制列表
(Access Control List, ACL)
•
右键单击文件
→→
“属性”
→→
“安全”选项卡
•
描述一个
用户
/
用户组
对该文件拥有哪些
权限
CMD 变量
•
赋值:
set foo=bar
(同样慎用空格!)
•
访问:
%foo%
,将
foo
的值替换掉
%foo%
•
例如,为环境变量
PATH
添加一条路径:
set PATH=%PATH%;D:\game 002
•
删除:
set foo=
•
set
-
查看所有环境变量
&
当前局部变量
set foo 可以查看变量名中包含 foo 的变量
•
set
指令仅影响当前
CMD
窗口
•
要永久修改可以用
setx
指令
(当前
CMD
窗口不会立即生效)
•
setx
foo “bar”
添加
/
修改
当前用户
的环境变量
•
setx
foo “bar” /M
添加
/
修改
系统
环境变量
•
没有永久删除环境变量的指令
通过图形界面编辑环境变量
•
右键桌面“此电脑”图标
→→
“属性”
→→
“高级系统设置”
→→
“环境变量
…
”
CMD 脚本
•
创建脚本文件:新建空白文档,直接修改后缀名为
.bat
(也叫批处理文件)
•
右键单击
→→
“编辑”
•
写入一系列
CMD
命令,保存
•
双击运行,或者使用命令行
call script.bat
或
script.bat
•
关于语法:
•
if
,
for
,
返回值
……
•
例如,创建
file0.txt ~ file5.txt
和
text0.txt ~ text5.txt
的脚本:
@echo off
for /L %%i in (0,1,5) do (echo.> file%%i.txt & echo.> text%%i.txt)
PowerShell 指令
•
PowerShell
指令又称为
cmdlets (command-lets)
•
每个指令是一个形如
Verb-Noun
的组合
•
E.g.
Get-Verb
,
Get-Command
,
Get-Member
,
Get-Help
•
指令后跟的参数名要以
‘
-
’
开头,其余格式与
CMD
基本相同
(e.g. Get-Command -Name *-Process)
查看对象
•
查看对象:
Get-Member
•
用法:使用管道将要查看的对象传给
Get-Member
(e.g. Get-Process | Get-Member)
•
常见类型:
System.String
,
System.Int32
,
System.Int64
,
System.Double
,
System.Boolean
,
System.Array
,
System.DateTime
,
System.Collections.Hashtable
,
System.IO.FileInfo
,
System.IO.DirectoryInfo
•
支持所有
.NET
类型
别名
•
PowerShell
看上去能够支持很多
CMD
指令归功于别名机制
•
查看别名与指令名的对应:
Get-Alias
(e.g.
Get-Member
与
gm
)
•
别名
→→
指令名:
Get-Alias [-Name] gm
•
指令名
→→
别名:
Get-Alias -Definition Get-Member
脚本
•
脚本文件为
.ps1
文件
•
PowerShell
脚本比
CMD
更接近于高级语言
•
例如,同样是创建
file0.txt ~ file5.txt
和
text0.txt ~ text5.txt
的脚本
:
for ($i = 0; $i -le 5; $i++) {
New-Item file$i.txt -ItemType File
New-Item text$i.txt -ItemType File
}
跨平台面向对象语言,学习可参考官方文档