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 
+0

半路那里:$ 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