我有一个文件夹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}