我仍然是脚本和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
有效吗?
答案 0 :(得分:0)
这取决于您使用的pwershell版本。较新的版本将为您提供$PSCommandPath
脚本的路径,您可以使用$PSCommandPath[0]
提取驱动器号。
对于旧版本,您可以使用$MyInvocation.MyCommand.Path
获取路径,并使用
split-path $MyInvocation.MyCommand.Path -Qualifier
我会推荐第二种方法,因为它可以在不同的机器之间移植,而这些机器可能只有旧版本。
如果您在批处理文件中运行此操作,而不是PowerShell脚本,那么%~do
将为您提供脚本的驱动器。