$()和${}的区别:
$()表示命令替换,将括号内的命令执行后得到的输出作为值。
例如,$(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]。
