Hello Power Shell Champs,
我有一个情况。
我在C:\ reports中有大约100个带国家/地区名称示例的文件:
我的国家/地区名称文件夹也位于文件夹C:\ Countries
中我想要做的是根据国家名称将基于国家/地区名称的文件移动到相应的文件夹中。
我可以创建一个有效的循环。 注意:目标文件夹已经创建,只需要移动文件
答案 0 :(得分:0)
正如Maigi所提到的,这里是工作代码,它实际上是您在原始帖子中请求的Move-Item
,而不是Copy-Item
。
此代码已经过测试并有效。
$list = (Get-ChildItem -Path C:\reports\ -Name -File).Replace('Report File-','').Replace('.ppt','')
ForEach-Object ($item in $list)
{
Move-Item -Path "C:\reports\Report File-$($item).ppt" -Destination "C:\Countries\$($item)\"
}
答案 1 :(得分:0)
在PowerShell中始终有多种方法可以完成任务: 这个脚本
Get-ChildItem 'C:\reports\Report File-*.ppt' -File | ForEach-Object{
$Country = Join-Path "C:\Country" $($_.BaseName.split('-')[1])
If (!(Test-path $Country)) {mkdir $Country|Out-Null}
$_|Move-Item -Destination $Country -whatif
}
如果输出看起来没问题,请删除-whatif
答案 2 :(得分:-1)
虽然你身边的一些代码可以看到你有多大帮助,但我想这样的事情可以解决问题: (编辑)的
$list = (Get-ChildItem -Path C:\reports\ -Name -File).Replace('Report File-','').Replace('.ppt','')
foreach ($item in $list) {
Move-Item -Source ".\Report File-$($item).ppt" -Destination "C:\Countries\$($item)\"
}