$()
和${}
的区别:
$()
表示命令替换,将括号内的命令执行后得到的输出作为值。
例如,$(ls)
将会执行ls
命令后得到当前目录下的文件列表作为值。
${}
表示变量替换,将大括号内的变量的值作为值。
例如,${a}
将取变量a的值作为值。
两种字符串:单引号和双引号
单引号括起来的字符串为字面字符串,不对字符串进行替换和拓展,即输入什么输出什么。
例如,’variable a is $a‘
会输出'variable a is $a'
,不对字符串进行任何变换和转义。
双引号括起来的字符串为可拓展字符串,会对字符串进行变量替换、匹配和转义等操作。
例如,"variable a is $a"
会将$a
替换为变量a的值,得到"variable a is 3"
。
-LiteralPath和-Path
LiteralPath
表示参数使用字面值(与两种引号引起的字符串不同),按原样使用,即参数(路径)不用通配符匹配。
例如,Test-Path -LiteralPath "[P01]小猪佩奇合集 第一季1-10集.m4a"
不会将[P01]
解释成p,0,1中的任意一个,而是[p01]
。
-Path
表示参数使用通配符匹配。
例如,Test-Path -LiteralPath "[P01]小猪佩奇合集 第一季1-10集.m4a"
会将[P01]
解释成p,0,1中的任意一个,而不是[p01]
。