我有一堆名为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
}