runlogged.bat : set args=%* if "%args%"=="" end.bat set Now=%TIME% REM ECHO It's %Now% now REM remove decimal part of time : FOR /F "tokens=1 delims=." %%A IN ("%Now%") DO SET Now=%%A REM ECHO It's %Now% now REM alternate way : REM FOR /F %%A IN ('TIME/T') DO SET Now=%%A REM ECHO It's %Now% now set str=%DATE%_%Now%_%args% call make_clean_str %str% set str=%str:.=_% if not exist r:\runlogs call md r:\runlogs set logname=r:\runlogs\%str%.log call %args% > %logname% 2>&1 call d %logname% type %logname% make_clean_str.bat : set str=%* set str=%str: =_% set str=%str::=_% set str=%str:\=_% set str=%str:/=_% set str=%str:;=_%make_clean_str is handy any time you want to make a string into a file name, it gets rid of illegal characters.
runlogged runs a command line and saves an archive of all runs, with the arg list and the date/time in the file name so they never collide.
Thanks to these two :
vanderwoude Batch files
ss64 Windows CMD Command Syntax
If the internet wasn't such a useless pile of turd, I would completely download both of their sites for my reference library.
I've written before, but repeating : what I really want is a fully journalling OS; every thing I ever run should be fully tracked and completely reproducable; all the input & output files should be saved. Oh well, this is better than nothing.
This seems to be very close to journaled OS, you might want to take a look:
ReplyDeletehttp://nixos.org/~eelco/pubs/nixos-jfp-final.pdf
Yeah, the whole phrasing in terms of unix packages is a mess, but it looks like the right idea. Hopefully we see stuff like this taking over.
ReplyDelete