第一次使用Powershell认真玩弄。我遇到了一个问题,就是我的小循环无法完成我想要的操作;它会从目录中找到的文件中创建一系列名称的列表,并创建保存文件所需的目录。
[TAG]Series first.txt [TAG]Series something else.txt File.jpg etc.
这应该分类为
Series first [Sometag]\[TAG]Series first.txt Series something else [Sometag]\[TAG]Series something else.txt File.jpg etc.
但是我无法获得Move-Item来将文件实际移动到新目录中。它会导致无扩展名的文件或错误,指出文件(目录)已存在。
$details = ' [Sometag]'
$series = Get-ChildItem . -Name -File -Filter *.txt |
% {$_.Replace("[TAG]", "").Split("-")[0].Trim()} |
Get-Unique
$series | ForEach-Object {
New-Item -ErrorAction Ignore -Name $_$details -ItemType Directory
}
此命令应将使用$serie
集合找到的文件移动到先前创建的目录中。
foreach ($serie in $series) {
Get-ChildItem -File -Filter *$serie*.txt |
Move-Item -Destination '.\$serie$details'
}
这导致它抱怨文件已存在。最好的解决方法是什么,我可以优化前两行吗?