2017-06-14 55 views
-1

我想获取C:\Users(获取用户名)中的所有文件夹名称并排除“Public”和“Default”用户。获取目录的文件夹名称并将它们插入字符串

然后我想将它们插入到一个路径C:\Users\$userlist\AppData\Local\Microsoft\Outlook\*.ost这样我就可以在ost文件重命名为这样的:

dir $ostPath | Rename-Item -NewName { [IO.Path]::ChangeExtension($_.Name, "bak") } 

,但每次都应该在$ostPath可变另一条路径从$userlist另一个用户名。

+2

听起来像一个伟大的计划。你有什么尝试?你卡在哪里? –

+0

@ MathiasR.Jessen我现在不知道如何制作一个贯穿每条路径的“for-loop”。假设我拥有$ userlist中的所有用户名,我必须去($ userlist){Write-Output C:\ Users \ $ PartOfuserlist \ AppData \ Local \ Microsoft \ Outlook * .ost} –

+1

查看'Get-ChildItem ','Directory'和'Exclude'参数可能会帮助你解决你的问题。 –

回答

1

像这样的事情

Get-ChildItem -path C:\Users | 
? { !($_.Name -eq "Public" -or $_.Name -eq "Default.migrated")} | 
ForEach-Object { 
    $FolderName=$_.Name 

    $ostPath ="C:\Users\"+$FolderName+"\AppData\Local\Microsoft\Outlook\*.ost" 
    dir $ostPath 
} 
相关问题