【发布时间】:2016-06-28 20:05:34
【问题描述】:
文件夹结构:
\\server\DropFolder.
├───PRD
│ ├───CTASales
│ │ └───v1.7
│ │ setup.bat
│ │
│ ├───CTASalesDeleteItems
│ │ └───v1.1
│ │ setup.bat
│ │
│ └───Feature1
│ └───v1.3.1
│ setup.bat
│
└───STG
├───CTASales
│ ├───v1.7
│ │ setup.bat
│ │
│ └───v1.8.1
│ setup.bat
│
├───CTASalesDeleteItems
│ └───v1.1
│ setup.bat
│
└───Feature1
└───2.7
setup.bat
如果版本文件夹 vx.x.x 是在 12 小时内创建的,我需要执行我的代码来对 setup.bat 文件进行自定义查找和替换。我是否需要一个 foreach 循环来进入 PRD/STG 然后另一个循环来查看每个 CTA 文件夹以查看版本创建时间?
到目前为止的代码:
Clear-Host
$Radsdrop = '\\SERVER\DROPFOLDER'
$date = Get-Date
$hours = '-9999999'
foreach ($env in (Get-ChildItem $RadsDrop -Directory))
{
if($env.Name -eq 'STG')
{
Get-ChildItem $Radsdrop -Recurse -Filter 'setup.bat' |
Where-Object {$_.Parent.CreationTime -gt (Get-Date).AddHours($hours)} |
Get-Content -Filter 'setup.bat' |
ForEach-Object
{
$_ -replace 'dev', 'stg' `
} | Set-Content c:\setup.bat
}
}
我不确定如何获取 bat 文件的内容并将其设置回适当的文件夹。
【问题讨论】:
标签: powershell replace find