按类型组织文件
|
我有此脚本,该脚本会定期运行以收集桌面文件,并按文件类型将它们组织到备份驱动器上的单个文件夹中。
function get-destbytype($ext)
{
switch ($ext)
{
{ $ext -match \'(jpg|png|gif|bmp)\'} { \"images\" }
{ $ext -match \'(divx|mpeg|avi)\'} { \"videos\" }
{ $ext -match \'(cs|js|java|py|class|vbs|jsp)\'} { \"code\" }
{ $ext -match \'(sql|ps1|pl|py)\'} { \"scripts\" }
{ $ext -match \'(zip|7z|rar)\'} { \"compressed\" }
{ $ext -match \'(ppt|pptx|doc|docx|pdf)\'} { \"documents\" }
{ $ext -match \'(csv|xls|xlsx)\'} { \"spreadsheets\" }
{ $ext -match \'(exe|dll|jar|ear|bat|cmd)\'} { \"executables\" }
{ $ext -match \'(txt|log)\'} { \"text\" }
{ $ext -match \'(msg|htm|html|lnk)\'} { \"miscellaneous\" }
{ $ext -match \'(properties|xml|ini)\'} { \"config\" }
default {\"$ext\" }
}
}
$dirtyfolder = \"C:\\Documents and Settings\\user\\Desktop\\\"
$org = \"$nas\\Desktop\\ORG\"
ls $dirtyfolder/* | ? {!$_.PSIsContainer} | %{
$dest = \"$($org)\\$(get-destbytype $_.extension)\"
if (! (Test-Path -path $dest ) )
{
write-host \"creating $dest\"
new-item $dest -type directory
}
mv -path $_ -destination $dest
}
该脚本已经过全面测试,在我能想到的大多数情况下似乎运行良好。最近,第一次遇到.csv
个文件时,它们的名称移到了一个新文件夹中
code spreadsheets
。
显然,这是因为应该将.cs
文件转到code
文件夹,将.csv
文件转到spreadsheets
文件夹,并且脚本无法区分.cs
和.csv
。
如何修改脚本以不执行此操作?
还可以做些什么来排除扩展名为“ 9”的桌面快捷方式?
没有找到相关结果
已邀请:
4 个回复
混侩闯空坷
您可以通过打开powershell并键入以下内容来轻松地进行测试:
这将导致错误。
蓟类
扦帽次杏
社攻取墟槽