这是非常直截了当的。我正在写一个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'? –