自动选择脚本路径

时间:2015-04-28 15:00:39

标签: scripting path

我仍然是脚本和PowerShell的新手。但是我遇到了我的脚本的常见问题。在我的部署环境中,我主要处理Windows 7和8.我通过在USB上使用批处理文件来部署多个程序。我知道一切都可以通过网络推送,但我没有权限。现在要使用USB方法,我必须为E:D:的路径创建路径,并希望在插入USB时收到其中一个字母或整个脚本失败。

以下是一个例子:

Title Installing "Program"  
Echo (Step # of #)  
Echo Installing "Program". . .  
Echo Please Wait. . .  
Echo Attempting Install from D:/  
pushd D:\\Path  
Echo Attempting Install from E:/  
pushd E:\\Path  
Echo Complete  
cls

我有没有办法将路径压缩到一行,该路径会选择D:E:或另一个驱动器号?这也必须能够在其他闪存驱动器上使用。会是这样的:.\path有效吗?

1 个答案:

答案 0 :(得分:0)

这取决于您使用的pwershell版本。较新的版本将为您提供$PSCommandPath脚本的路径,您可以使用$PSCommandPath[0]提取驱动器号。

对于旧版本,您可以使用$MyInvocation.MyCommand.Path获取路径,并使用

提取驱动器号
split-path $MyInvocation.MyCommand.Path -Qualifier

我会推荐第二种方法,因为它可以在不同的机器之间移植,而这些机器可能只有旧版本。

如果您在批处理文件中运行此操作,而不是PowerShell脚本,那么%~do将为您提供脚本的驱动器。