powershell获取远程目录名称和文件名放在目标文件名
问题描述:
我有这一点的PowerShell脚本,但我不能让$ DirectoryName行为如预期。powershell获取远程目录名称和文件名放在目标文件名
1,2,3 |
foreach {
$count = $_;
$x = gci -Path \\myserver-web$count\d$\IISLogs\ -include *.log -recurse
$x | Copy-Item -Destination D:\ServerLogsAndBackups\IIS\w$count\$_.DirectoryName_$_.Name -whatIf
}
当我运行这虽然我得到
如果:目标执行操作 “复制文件”,“项目:\ MYSERVER-web1的\ d $ \ IISLogs \ W3SVC1165836668 \ ex101224.log目的地:d :\ ServerLogsAndBackups \ IIS \ W1 \ 1.DirectoryName_1.Name”。
我希望它是什么是
W3SVC1165836668_ex101206.log
在我的目录结构是这样的:
\\myserver-web1\d$\IISLogs\W3SVC1165836668
\\myserver-web1\d$\IISLogs\W3SVC1165837451
\\myserver-web1\d$\IISLogs\W3SVC1165836966
\\myserver-web1\d$\IISLogs\W3SVC1165812365
一个名为ex101206.log每个文件夹中的文件
干杯
答
1,2,3 |
foreach {
$count = $_;
gci -Path \\myserver-web$count\d$\IISLogs\ -include *.log -recurse | % { $dirName = $_.directoryname.Substring($_.directoryname.LastIndexOf("\")+1); $logname = $_.Name; $_ | Copy-Item -Destination $("D:\ServerLogsAndBackups\IIS\w"+$count+"\"+$dirname+"_"+$logName) -whatif }
}
答
您需要评估$_.Directoryname_$_.Name
部分。像这样,
$x | Copy-Item -Destination $(D:\ServerLogsAndBackups\IIS\w$count\$_.DirectoryName_$_.Name) -whatIf
半路那里:$ X | ForEach-Object {$ x -Destination $(“D:\ ServerLogsAndBackups \ IIS \ w”+ $ count +“\”+ $ _。Directoryname +“_”+ $ _。Name) - whatIf \t }然而它声称我的目标是像.. D:\ ServerLogsAndBackups \ IIS \ w1 \ myserver-web1 \ d $ \ IISLogs \ W3SVC1135081669_ex110330.log – Jarede 2011-06-17 11:56:26