2017-06-14 71 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 
} 
相關問題