Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I read a ton of small PDF files for work, I would like to "mark" these to show that they've been read?

I keep them organized in specific folders (like over 1000). I was imagine a PERL script or something to create a "READ" and UNREAD folder for every subfolder in a specific folder or Windows Shell Script?

I dont have experience with either so any ideas?

share|improve this question

migrated from stackoverflow.com Jan 15 '11 at 4:41

This question came from our site for professional and enthusiast programmers.

It belongs here. I don't know why it's being voted to be closed, especially with no comment as to why. Anyway, this involves a shell extension. TortoiseSVN (the code should be available for viewing I believe, just mind license) does this to show "current" and "stale" files, etc. Now, given the above keyword, what has research shown as possible approaches? :) Detecting "read", etc. is a little more problematic, but could perhaps be done with an intercept-loader or a file-system monitor (process explorer can monitor file handle access, for instance). In the end, likely not worth it. –  pst Jan 15 '11 at 4:26
Why it belongs here: discussion of the different techniques/approaches for this sort of highly-coupled task, including issues, will increase the store of random-programming-related-knowledge on SO. –  pst Jan 15 '11 at 4:30
maybe OP can get a COTS solution that can do what he needs on SuperUser –  mauris Jan 15 '11 at 4:36

1 Answer 1

up vote 1 down vote accepted

My thoughts would be to make a reader of some sort where powershell lists the current unread files as a list, you select one from the list, and then the script will will both move it to read and open it in acrobat for you. That's a more automatic way to mark as read without a lot of fuss.


do {

    $files = Get-ChildItem $dir | Where {$_.psIsContainer -eq $false}

    foreach ($file in $files) {
        write-host $count "-" $file

    $toread = read-host -prompt "Please type the number of the file you would like to read: " 

    $fileToRead = ($readdir+"\"+$items[$toread-1])
    $fileToMove = ($dir+"\"+$items[$toread-1])

    Move-Item $fileToMove $readdir
    Invoke-Item $fileToRead

    Start-Sleep -s 5
    write-output "`n`r"

} while ($count -gt 1)

write-output "Reading Done!"
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.