• Hmm... this is working for me...

    c:>bcp "select text from sys.syscomments where id=OBJECT_ID('procname')" QUERYOUT "procname.sql" -S server -d database -T

    Even better, if I create a text file of proc (or view, function or trigger) names:

    c:>for /f %f in (proclist.txt) do @bcp "select text from sys.syscomments where id=OBJECT_ID('%f')" QUERYOUT "%f.sql" -S server -d database -T

    If using a version of bcp that doesn't support -d database, then modify the query to:

    select text from database.sys.comments

    Wish there was a bit easier way to extract table DDL (yes, there's SMO)...