Scripting 自动选择脚本路径
我对脚本和powershell还是相当陌生的。然而,我在脚本中遇到了一个常见的问题。在我的部署环境中,我主要处理Windows7和Windows8。我通过在USB上使用批处理文件部署了几个程序。我知道一切都可以通过网络推送,但我没有这样的权限。现在要使用USB方法,我必须为E:和D:创建一个路径,并希望在插入USB时收到其中一个字母或整个脚本失败 以下是一个例子:Scripting 自动选择脚本路径,scripting,path,Scripting,Path,我对脚本和powershell还是相当陌生的。然而,我在脚本中遇到了一个常见的问题。在我的部署环境中,我主要处理Windows7和Windows8。我通过在USB上使用批处理文件部署了几个程序。我知道一切都可以通过网络推送,但我没有这样的权限。现在要使用USB方法,我必须为E:和D:创建一个路径,并希望在插入USB时收到其中一个字母或整个脚本失败 以下是一个例子: Title Installing "Program" Echo (Step # of #) Echo Installing
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 work?这取决于您使用的pWersell版本。较新版本将使用$PSCommandPath为您提供脚本路径,您可以使用$PSCommandPath[0]提取驱动器号 对于旧版本,可以使用$MyInvocation.MyCommand.path获取路径,并使用提取驱动器号
split-path $MyInvocation.MyCommand.Path -Qualifier
我建议使用第二种方法,因为它在可能只有旧版本的不同机器之间更易于移植
如果您是在批处理文件中运行此脚本,而不是在powershell脚本中运行,则%do将为您提供脚本的驱动器。脚本也在闪存驱动器上吗?是的,脚本和powershell都在。我不确定您所说的命令行脚本是什么意思。你是说批处理文件.bat扩展名吗?抱歉。是的,首先要运行的是一个批处理文件,它调用几个不同的PowerShell。稍后我会将它们压缩为一个PowerShell。