将 powershell 变量传递给 robocopy

Passing powershell variable to robocopy

我有一个 robocopy 作业,可以将文件从一个文件夹复制到另一个位置。

"D:\inetpub\www.test.com.au\App_Data\Indexes" "D:\inetpub\www.test2.com.au\livewww\App_Data\Examine" /MIR /IS /MON:1 /MOT:5

这工作正常,但我们已经开始使用 Octopus 部署和 Web 根文件夹,即 D:\inetpub\www.test2.com.au\livewww\App_Data\Examine 不一样并且在每次部署后不断变化,如

D:\Octopus\Dev\Presentation.Web17.9.320-ap\App_Data\Examine
D:\Octopus\Dev\Presentation.Web17.9.321-ap\App_Data\Examine
D:\Octopus\Dev\Presentation.Web17.9.322-ap\App_Data\Examine

我正在考虑使用 powershell 获取网站的当前根目录 www.test2.com.au 并将此位置传递给 robocopy。

我是 powershell 的新手,从未在 powershell 中工作过,所以我的问题是是否可以同时使用 powershell 和 robocopy,例如获取网站的当前根 www.test2.com.au 并将其传递给 robocopy 以执行命令。这怎么可能?任何帮助将不胜感激

提前致谢

是的,你想做的是可能的。 Windows PowerShell 的 Web 服务器管理模块包括 Internet 信息服务 (IIS) cmdlet,可让您管理 IIS 的配置和 运行 时间数据。

import-module WebAdministration
$physicalPath = Get-WebSite "Default Web Site" | % PhysicalPath

或者,如果它是 Web 应用程序

$physicalPath = Get-WebApplication "Web.Application" -Site "Default Web Site" | % PhysicalPath

现在您可以在调用 RoboCopy 等外部 exe 时使用 $physicalPath 变量。