我試圖監視一個目錄及其新文件的子目錄。我想查看文件擴展名,並根據文件擴展名將其移至相應的文件夾。例如,如果我有一個文件夾「C:\ users \ dave \ desktop \ test」,並且我下載了一個avi文件到該文件夾,就像腳本一樣查看它並自動將文件移動到C:\ movies。或者,如果我下載一個完整的mp3文件文件夾,我希望它自動將整個文件夾移動到C:\ music。現在它只將mp3文件移動到C:\ music中,但我無法弄清楚如何移動父文件夾。文件組織PowerShell腳本
以下是我迄今寫過的內容:請記住,我是PowerShell新手!
if (!(Test-Path -path C:\music))
{
New-Item C:\music\ -type directory
}
if (!(Test-Path -path C:\movies))
{
New-Item C:\movies\ -type directory
}
$PickupDirectory = Get-ChildItem -recurse -Path "C:\users\Dave\desktop\test"
$folder = 'C:\users\Dave\desktop\test'
$watcher = New-Object System.IO.FileSystemWatcher $folder
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$watcher
Register-ObjectEvent $watcher -EventName Changed -SourceIdentifier 'Watcher' -Action {
foreach ($file in $PickupDirectory)
{
if ($file.Extension.Equals('.avi'))
{
Write-Host $file.FullName #Output file fullname to screen
Write-Host $Destination #Output Full Destination path to screen
move-Item $file.FullName -destination c:\movies
}
if ($file.Extension.Equals('.mp3'))
{
Write-Host $file.FullName #Output file fullname to screen
Write-Host $Destination #Output Full Destination path to screen
move-Item $file.FullName -destination c:\music
}
if ($file.Extension.Equals(".mp4"))
{
Write-Host $file.FullName #Output file fullname to screen
Write-Host $Destination #Output Full Destination path to screen
move-Item $file.FullName -destination c:\movies
}
}
}
}
出於某種原因,它不移動文件。我得到它看到的變化,但不移動文件。
請幫忙!
退房這個程序 - [DropIt(http://dropit.sourceforge.net)做這個。 – 2013-04-27 11:58:41
謝謝安迪,但是,我必須創建這個作業。我的編程知識已經讓我走了這麼遠,但是我缺乏腳本知識卻使我停下腳步。 – OOoNiMrOdoOO 2013-04-27 13:43:21