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.

$dir="C:\Users\username\Documents\ToRead"
$readDir="C:\Users\username\Documents\ToRead\Read"

do {
    $count=0
    $items=@()

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

    foreach ($file in $files) {
        $count++
        write-host $count "-" $file
        $items+=,($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

 
discard

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