【发布时间】:2021-03-31 03:33:09
【问题描述】:
我正在尝试从根文件夹下的日常文件夹中复制文件“abc.txt”。 假设源文件夹路径和文件看起来像..
\\Server01\rootdir->01-01-20->abc.txt
\\Server01\rootdir->01-01-20->abc.txt
\\Server01\rootdir->01-01-20->Details->abc.txt
..
..
\\Server01\rootdir->10-25-20->Details->abc.txt
\\Server01\rootdir->11-15-20->abc.txt
\\Server01\rootdir->12-30-20->abc.txt ---File existed in parent folder
\\Server01\rootdir->12-31-20->Details->abc.txt ---File not in parent but in child
我想将所有这些文件夹中的 abc.txt 文件复制到一个位置。但是在复制时,我需要将文件夹名称附加到 abc_01-01-20.txt 之类的文件中。但是有可能里面 root->01-01-20 可能包含子文件夹(Details),并且里面可能有相同的文件名。因此,如果文件不存在于 01-01-20 文件夹中,则它有可能存在于“Details”文件夹中。如果 父文件夹 上存在“abc.txt”,则脚本不应查看子(详细信息)文件夹。
TargetDir->abc_01-01-20.txt
TargetDir->abc_01-02-20.txt
..
..
TargetDir->abc_12-31-20.txt
这是我构建的脚本
$Source = "\\Server01\root"
$SrcFile="abc.txt"
$GetSrcFile = Get-ChildItem $Source | Where-Object {$_.name -like "$SrcFile"}
$Destination = "C:\Target"
Copy-Item "$Source\$GetFile" "$Destination" -Force -
Confirm:$False -ErrorAction silentlyContinue
if(-not $?) {write-warning "Copy Failed"}
else {write-host "Successfully moved $Source\$SrcFile to $Destination"}
问题是此脚本无法将文件夹名称提取并附加到文件中。
【问题讨论】: