我是PowerShell的新手。
我创建了一个PowerShell脚本,该脚本根据特定条件从一个文件夹中的大量非常相似的文件中识别特定的Mp3文件:
然后将该文件重命名为今天的日期,并在文件名中添加一些其他文本:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="box">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-300 -200 800 800" enable-background="new 0 0 139.9 217.3" xml:space="preserve">
<g class="groupAni">
<rect x="0.6" y="86.6" fill="#945BA5" stroke="#000000" stroke-miterlimit="10" width="100" height="100"/>
<circle fill="#ED1F24" cx="4.3" cy="90.3" r="2.5"/>
</g>
<circle fill="#81C341" stroke="#000000" stroke-miterlimit="10" cx="93.5" cy="170.9" r="46.5"/>
<polygon fill="#FEED50" stroke="#000000" stroke-miterlimit="10" points="38.3,96 20.6,42.3 58.2,0 113.7,11.5 131.4,65.2 93.7,107.5 "/>
</svg>
</div>
</div>
这部分完美无缺,但下一步却没有。我想将重命名的文件复制到另一台服务器上的另一个文件夹($AudioDir = "\\Server\Audio\"
$MediaDir = "\\Server2\Media\"
$LatestMP3 = Get-ChildItem -Path $AudioDir "*NEW.MP3" | Sort-Object CreationTime | Select-Object -Last 1
Get-ChildItem -path $AudioDir $LatestMP3 |Rename-Item -newname {(GET-DATE).ToString("yyyy-MM-dd") + " NewAUDIO.mp3"}
)
我正在尝试管道:
$MediaDir = "\\Server2\Media\"
没有错误,文件按预期重命名,但Get-ChildItem -path $AudioDir $LatestMP3 |Rename-Item -newname {(GET-DATE).ToString("yyyy-MM-dd") + " NewAUDIO.mp3"} | Copy-Item -destination $MediaDir
什么也没做。
非常感谢任何帮助。
由于
答案 0 :(得分:4)
默认情况下,Rename-Item
CmdLet不会返回任何内容。你必须强迫它进入管道。在管道中使用PassThru
参数,它应该复制得很好。
Get-ChildItem -path $AudioDir $LatestMP3 |Rename-Item -newname {(GET-DATE).ToString("yyyy-MM-dd") + " NewAUDIO.mp3"} -PassThru | Copy-Item -destination $MediaDir