2010-11-29 31 views
3

我們正在嘗試整理我們的用戶主目錄,並通過將其所有模板移動到其用戶驅動器上的新目錄(U :)來加速Office 2007的某些性能。在我最初的測試中,我可以使下面的腳本工作正常,但它有明顯的問題,只能爲我的用戶名工作。有沒有辦法讓它採取當前登錄用戶?在此之前,將通過%username%和簡短的互聯網掃描處理:將用戶名插入文件路徑Powershell

$[Environment]::UserName 

應該工作。但是,我似乎得到錯誤。有沒有更好的方式來實現當前用戶登錄到文件路徑中的名稱?

if (!(Test-Path -path '\\SERVER\PATH\TO FILES\$[Environment]::UserName\Normal\')) 
{ 
New-Item '\\SERVER\PATH\TO FILES\$[Environment]::UserName\Normal\' -type directory 
##Move-Item \\SERVER\PATH\TO FILES\$env:username\Normal.dot \\\SERVER\PATH\TO FILES\$env:username\Normal\ 
## Move-Item \\SERVER\PATH\TO FILES\$env:username\*.dotm \\SERVER\PATH\TO FILES\%username%\Normal\ 
} 
else 
{ 
"No work to do" 
} 
+0

參見https://stackoverflow.com/questions/2085744/how-to-get-current-username-in-windows-powershell – 2017-06-26 11:17:42

回答

5

兩個問題。如果您希望在字符串中進行變量/表達式替換,則需要使用引號而不是撇號來封裝字符串。在這種情況下,您還需要添加一些括號來表示字符串中的表達式。

"\\SERVER\PATH\TO FILES\$([Environment]::UserName)\Normal\" 
+3

`$ ENV:USERNAME`更PowerShell的十歲上下,或許是: `「\\ SERVER \ PATH \ TO FILES \ $ env:USERNAME \ Normal \」` – 2010-11-29 16:19:02