我有一些powershell脚本,但我无法使$DirectoryName按预期运行。
1,2,3 |
foreach {
$count = $_;
$x = gci -Path \myserver-web$countd$IISLogs -include *.log -recurse
$x | Copy-Item -Destination D:ServerLogsAndBackupsIISw$count$_.DirectoryName_$_.Name -whatIf
}
当我运行这个时,我会得到
假设:对目标"项目:\myserver-web1\d$\IISLogs\W3SVC1165836668\ex101224.log目标:d:\ServerLogsAndBackups\IIS\w1\1.DirectoryName_1.Name"执行"复制文件"操作。
我想要的是
W3SVC1165836668_ex101206.log
我的目录结构如下:
\myserver-web1d$IISLogsW3SVC1165836668
\myserver-web1d$IISLogsW3SVC1165837451
\myserver-web1d$IISLogsW3SVC1165836966
\myserver-web1d$IISLogsW3SVC1165812365
每个文件夹中都有名为ex101206.log的文件
干杯
您需要评估$_.Directoryname_$_.Name
部分。像这样,
$x | Copy-Item -Destination $(D:ServerLogsAndBackupsIISw$count$_.DirectoryName_$_.Name) -whatIf
1,2,3 |
foreach {
$count = $_;
gci -Path \myserver-web$countd$IISLogs -include *.log -recurse | % { $dirName = $_.directoryname.Substring($_.directoryname.LastIndexOf("")+1); $logname = $_.Name; $_ | Copy-Item -Destination $("D:ServerLogsAndBackupsIISw"+$count+""+$dirname+"_"+$logName) -whatif }
}