這是非常直截了當的。我正在寫一個PowerShell功能,我想驗證,如果一個參數是一個有效的目錄,而不是返回True
或False
,Test-Path
是錯誤?測試路徑錯誤而不是返回True/False
這與我正在閱讀的有關函數行爲的內容相反。
if (Test-Path -PathType Container "asdf")
{
Write-Output "Exists"
}
else
{
Write-Output "Does not exist"
}
這是非常直截了當的。我正在寫一個PowerShell功能,我想驗證,如果一個參數是一個有效的目錄,而不是返回True
或False
,Test-Path
是錯誤?測試路徑錯誤而不是返回True/False
這與我正在閱讀的有關函數行爲的內容相反。
if (Test-Path -PathType Container "asdf")
{
Write-Output "Exists"
}
else
{
Write-Output "Does not exist"
}
你在SQLSERVER驅動器。您需要將您的位置更改回FileSystem驅動器。
您在SQLSERVER驅動器中進行設置。你需要回到你的本地文件系統。繼續並做一個
Set-Location C:
然後你就可以運行你的If語句。
我會評論這第一個答案,是爲了澄清如何到達本地文件系統,但我的低信譽限制了我的評論。
你接受的答案是對的,但我想擴展你可以做的不同。
直到最近這都是一個問題。 PowerShell's SQL server support has been vastly improved,以至於他們爲它創建了一個新模塊,所以如果您仍在使用SQLPS
,請改用SqlServer
模塊。
隨着SQLPS
,它會自動將驅動器更改爲SQLSERVER:
供應商。
如果您必須繼續使用或支持SQLPS
,並希望避免這種行爲(它也可以使標籤完成超慢),我喜歡這種模式:
Push-Location
Import-Module SQLPS
Pop-Location
這可以節省您的當前位置位置堆棧,導入模塊(這將改變你的位置),然後彈出你以前的位置,所以你回到你開始的地方。
我強烈建議你看看使用新模塊,因爲它有一些非常重要的增強和改進。
偉大的信息!我是一名開發人員,但仍在發展我的PowerShell基礎並熱愛學習新事物。 –
哦,我沒有意識到SQL服務器上的PowerShell會在某種驅動器。有沒有標準的方法來默認到FileSystem驅動器,或者我只是'Set-Location $ PSScriptRoot'? –