Powershell根据名称的一部分移动文件夹

时间:2017-06-01 14:35:45

标签: powershell directory move

我有一堆名为XXXXXXX_XXXXXXXX_XXXXXX_XXXX_XXXX的文件夹,基于此我想用名称的第一部分(XXXXXXX)创建文件夹,并将匹配的文件夹与名为XXXXXXX的文件夹中的内容放在一起。

我在这里找到了一个脚本Script for the task for files,在尝试改变它以便在文件夹上工作后我失败了。 你能不能给我一个提示如何解决这个问题? 我试图改变的代码位于

下面
Get-ChildItem C:\Downloads\Signs -Filter *.psf | Where-Object {!$_.PSIsContainer} | Foreach-Object{

$dest = Join-Path $_.DirectoryName $_.BaseName.Split()[0]

if(!(Test-Path -Path $dest -PathType Container))
{
    $null = md $dest
}

$_ | Move-Item -Destination $dest -Force}

到目前为止我尝试过的事情: 1.将Split()方法应用于表格, 2.根据Regex提取文件名,并将文件夹移动到ForEach-Object中的文件夹中。 3.之前提到的解决方案适用于文件,而不适用于文件夹。

任何帮助都将受到高度赞赏。 提前谢谢你,

- 编辑:     感谢社区我改变了一点脚本,它似乎工作     我想要。

$location =  'C:\Users\admin\Desktop\test'
Get-ChildItem -Path $location -Directory | 
Foreach-Object{

$destination =Join-Path $location $_.BaseName.Split('_')[0]

if(!(Test-Path -Path $destination -PathType Container))
{
    #$null = md $destination
    $null = New-Item -ItemType Directory -Path $destination
}

$_ | Move-Item -Destination $destination -Force
}

0 个答案:

没有答案