我有一个文件夹c:\graphics(根)和一个创建子文件夹的程序,例如aa, bm, czx, mjpq, zz(我有很多子文件夹,长度是可变的)。
在每个子文件夹中,我有 26 个文件和一个文件夹。例如,aa文件夹有:aa_000.jpg, aa_001.jpg, ..., aa_023.jpg; 其他两个文件aa_360.jpg和aa.html一个文件夹。完整路径是C:\graphics\aa\aa_360。
我需要在子文件夹中移动 24 个文件(aa_000.jpg, aa_001.jpg, ..., aa_023.jpg)c:\graphics\aa\aa_360并且也等于每个子文件夹。
另一个例子是c:\graphics\mjpq\mjpq_360,应该有mjpq_000.jpg,...,mjpq_023.jpg。
我启动了脚本,考虑将所有.jpg(25 个文件)移动到子文件夹中(后来,我不得不想提取xxx_360.jpg),但它不起作用:
Get-ChildItem c:\graphics -rec | where-object {$_.extension -match "jpg"} | ForEach-object {$newPath =(Get-Location).toString()+(Get-Location).ToString().SubString(10)+"_360"); Move-Item $_.FullName $newPath}
但Get-Location找不到文件路径。
注意:我找到了一个可行的解决方案,但它在控制台中引发了一些错误:
Get-ChildItem c:\graphics -rec | where-object {$_.extension -match "jpg" -and (!($_.name -like "*360*"))} | ForEach-Object {$newPath =($_.DirectoryName).toString()+($_.DirectoryName).ToString().SubString(10)+"_360"; Move-Item $_.FullName $newPath}