Thẻ của bạn nói rằng bạn đang sử dụng Windows 8. Điều này rất tốt, vì bạn có công cụ tuyệt vời đó là PowerShell và một lệnh ghép nhỏ tiện dụng có tên Register-ObjectEvent
.
Tạo một tệp văn bản, thay đổi phần mở rộng thành .ps1
, dán tập lệnh bên dưới vào tệp. Thay đổi $watchedFolder
biến vào thư mục bạn muốn xem. Thay đổi chức năng Do-Something để bao gồm lệnh robocopy của bạn hoặc bất cứ điều gì. Chạy tập lệnh, miễn là tập lệnh đang chạy, chức năng đó sẽ chạy (gần như ngay lập tức!) Bất cứ khi nào một tập tin hoặc thư mục được thay đổi trong thư mục đã xem.
Bạn có thể chạy tập lệnh này khi khởi động windows và nó sẽ chạy ở chế độ nền mọi lúc mà không cần sử dụng bộ đếm thời gian.
$block = {
function Do-Something
{
param ($message, $event)
# function to call when event is raised
# do a robocopy or whatever
Start-Process cmd.exe "/C echo $("{0} {1}" -f $event.SourceEventArgs.FullPath, $message)&pause"
}
$watchedFolder = "C:\Users\Admin-PC\Desktop"
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $watchedFolder
Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier File.Created -Action { Do-Something "Created" $event }
Register-ObjectEvent -InputObject $watcher -EventName Deleted -SourceIdentifier File.Deleted -Action { Do-Something "Deleted" $event }
Register-ObjectEvent -InputObject $watcher -EventName Changed -SourceIdentifier File.Changed -Action { Do-Something "Changed" $event }
Register-ObjectEvent -InputObject $watcher -EventName Renamed -SourceIdentifier File.Renamed -Action { Do-Something "Renamed" $event }
}
$encodedBlock = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($block))
Start-Process PowerShell.exe -verb Runas -argumentlist '-WindowStyle Hidden', '-NoExit', '-EncodedCommand', $encodedBlock
Xem nó trong hành động
Chạy tập lệnh đã lưu.
Bạn sẽ thấy một cửa sổ giao diện điều khiển nhấp nháy, sau khi chúng đóng dấu hiệu duy nhất nó đang chạy sẽ là một vài quy trình mới.
Làm một số thứ trên máy tính để bàn của bạn để kiểm tra.
- Kết thúc quá trình PowerShell đã tạo khi bạn không còn muốn nó chạy.
Một số thông tin cơ bản - Trong trường hợp bạn không quen thuộc với các công cụ được sử dụng trong câu trả lời này.
- Để biết thêm thông tin về
System.IO.FileSystemWatcher
xin vui lòng truy cập trang MSDN của nó .
- Để biết thêm một số ví dụ về các sự kiện trong PowerShell, hãy truy cập blog này, tôi thấy hữu ích .
- Đối với một mồi trên Windows PowerShell tôi đã thấy trang web này hữu ích (tôi thích các mẹo của họ trong ngày).
- Nếu bạn đang sử dụng phiên bản Windows cũ hơn hoặc vì lý do nào đó bạn chưa cài đặt PowerShell, bạn có thể tải xuống Windows Management Framework 4.0 .