2016-09-13 32 views
1

我見過一個例子使用PowerShell設置文件的時間戳(CREATIONTIME,的LastAccessTime,lastwritetime):

PS>$(get-item test.txt).lastwritetime=$(get-date "01/01/2020") 

這似乎工作。

本頁面:http://ss64.com/ps/syntax-operators.html關於powershell運營商說"$()"是一個「SubExpression運算符」。

但它似乎也沒有像"$"工作:

PS>(get-item test.txt).lastwritetime=(get-date "01/01/2020") 

,並使用括號的時候我見過最PowerShell的例子省略了"$"

那麼,powershell "$()"中的「Dollar-sign」是可選的嗎?或者有沒有"$"有一些差異,我只是沒有看到。

"$()""()"實際上是兩個不同的運算符,這兩個運算符在我所示的例子中都是有效用途?

回答

2

如果使用多個語句或語句嵌入字符串中,則需要$符號來表示子表達式。沒有$的括號只是一個分組操作符。

$($x = 1; $y =2; $x + $y).tostring() //3 

($x = 1; $y =2; $x + $y).tostring() // invalid syntax 

($x = 1 + 2).tostring() //3 

"$(1 +2)" //3 
0

第一次,我需要的是$()在字符串中:

$a = Get-Process "explorer" 
Write-host "$a.Name" -> System.Diagnostics.Process (explorer).Name 
Write-Host "$($a.Name)" -> explorer 

我還用它我想PowerShell將率先發力計算的東西,每次。

相關問題