小编SrP*_*aux的帖子

powershell 中的 %~dp0 等效项(使用 Expand-Archive cmdlet)

我对脚本编写(尤其是 powershell)和 Stack Overflow 都很陌生,所以请原谅我的无知并请耐心等待!我将尽力具体解释我想要做什么,并希望有人能够详细答复我可以做些什么来使其发挥作用。

预期流程/工作流程:同事下载包含所有必需文件的“Install.zip”文件。此“Install.zip”文件包含“Setup.bat”文件(用于计算机配置)、“Fubar.zip”文件、2 个 powershell 脚本和一个自定义 powerplan (.pow) 文件。下载后,他们将运行“Setup.bat”文件,它几乎可以完成所有工作。在该批处理文件中,它调用 2 个 powershell 脚本。1)"Download.ps1" - 从网络下载一些其他文件。2.) “Unzip.ps1” - 解压“Fubar.zip”并将内容放入另一个文件夹 - C:\TEST\

问题:我最近熟悉了在批处理文件中使用 %~dp0 。我想确保我的同事最初下载 Install.zip 的位置不会丢失我的批处理文件。例如,有些人会将 .zip 文件下载到“下载”文件夹,然后将内容解压到正确的目的地。其他人会将 .zip 下载到特定文件夹,然后将其解压到该文件夹​​中。[例如:C:\Alex\Install.zip --Extraction-- C:\Alex\Install\((Content))] 因此,由于变量的原因,我尝试不预先定义文件位置。我已经让 %~dp0 在我的批处理文件中需要它的任何地方工作。我遇到的唯一问题是让我的 powershell 脚本使用我的批处理文件所在的同一工作目录。 *我的批处理文件和我的 powershell 脚本将始终位于同一目录中。(无论在哪里)

目标:我希望我的 powershell 脚本(“Unzip.ps1”)在当前运行的同一目录中查找“Fubar.zip”文件。(再次 - 无论在哪里)我基本上想删除任何变量可能会抛出 powershell 脚本。我希望它始终使用当前工作目录来查找 Fubar.zip。我基本上需要 powershell 来使用其当前工作目录或找出一种方法让它拉出当前工作目录并使用它来查找“Fubar.zip”。

我当前的“Unzip.ps1”powershell 脚本非常基本。

解压.ps1 :Expand-Archive -Force c:\ALEX\Install.zip\Fubar.zip -dest c:\TEST\

调用 Unzip.ps1 脚本的批处理文件命令: Powershell.exe -executionpolicy remotesigned -File %~dp0UNZIP.ps1

请记住,我只是在学习脚本并且正在自学。我的知识有限,但到目前为止我已经做到了,这是我唯一坚持的部分。请给予明确答复。任何帮助或建议将不胜感激!使用PowerShell 5.0

提前致谢!

windows powershell cmd batch-file

5
推荐指数
2
解决办法
3万
查看次数

标签 统计

batch-file ×1

cmd ×1

powershell ×1

windows ×1