只是想知道是否可以根据字母表将脚本移动到特定文件夹?
例如,Scream 4将被移动到e:\ movies \ s \ 阿凡达将被转移到e:\ movies \ a \
我启动一个如下所示的脚本: 但结果并不好!脚本尝试创建一个文件名为...的目录。
$a = new-object -comobject wscript.shell
$b = Get-Location
foreach($file in (dir $b -file -recurse)) {
New-Item -Path $b -Name (Split-Path $file.fullname -Leaf).Replace($file.extension,"") -ItemType Directory -Confirm
Move-Item -Path $file.fullname -Destination "$b\$((Split-Path $file.fullname -Leaf).Replace($file.Extension,''))" -Confirm
}
一个想法? 非常感谢! Kreg
答案 0 :(得分:5)
在运行命令之前,目标文件夹必须存在:
dir $b -file -recurse | Move-Item -Destination {"e:\movies\$($_.Name[0])"}
这将在运行时创建文件夹:
dir $b -File -Recurse | foreach{
$folder = Join-Path e:\movies $_.Name[0]
md $folder -force | Out-Null
$_ | Move-Item -Destination $folder
}