home *** CD-ROM | disk | FTP | other *** search
- Stamp Collecting
- (PC Magazine Vol 4 No 7 April 2, 1985 User-to-User)
-
- The batch file, DT.BAT, redirects the date and time information
- into a file or to a printer. To stamp a file, enter DT FILENAME. To
- have the information appear on a listing, type DT PRN. So that you
- don't have to press the Enter key when DOS asks for a new date and
- time, create a file called CR that contains nothing except a carriage
- return. To do this, type COPY CON:CR and then hit the Enter key twice,
- then F6, and then the Enter key one more time. Then type:
- COPY CON:DT.BAT
- DATE<CR>%1
- TIME<CR>%1
- Hit the Enter key after each line, then F6 and the Enter key when
- you're done. If you want one file with just the date and time, create
- a DT1.BAT as follows:
- COPY CON:DT1.BAT
- DATE<CR>DATE
- TIME<CR>TIME
- COPY DATE+TIME %1
- The prompts from both DATE and TIME are not redirected to the
- output file. DT.BAT works properly if you're sending the output to a
- printer, but the time stamp will write over the date stamp if you're
- sending it to a disk file. DT1.BAT will work both if you send it to a
- printer or a file.
-
- -----------------------------------------------------------------
- New Dates for Old
- (PC Magazine Vol 4 No 21 Oct 15, 1985 User-to-User)
-
- Here's a trick to put the current date and time stamp on any of
- your files. Create a one-line batch file called STAMP.BAT with the
- line: COPY %1/B,,+ %1 >NUL, where the ">NUL" suppresses spurious
- messages that inclusion of the duplicate filespec generates. Then just
- type: STAMP filename, substituting the name of the file whose date and
- time you want to change for "filename." This also suppresses error
- messages such as "File not found."
- Editor's Note: This technique includes an improvement over the
- example in the DOS manual -- the addition of a /B that forces DOS to
- copy the entire length of the file as specified by the directory. If
- you omit the /B and try this on a binary file with a ^Z(CHR$(26)) in
- it, COPY will stop copying as soon as it hits this character, which
- DOS assumes is a standard end-of-file marker. The /B will work both
- for ASCII files and binary files. DOS defaults to /B when copying
- without joining files together but defaults to /A when you ask COPY
- to concatenate several files.
- When DOS concatenates files (using +), it records the current
- date and time in the directory. If you concatenate source files
- without naming a result filename, COPY will add all the files it is
- joining to the end of the first file in the list of filenames to be
- joined. Since STAMP.BAT uses only one source name, and no result
- names, the file is concatenated onto itself.
- While DOS is strict about punctuation and syntax, the ,,+ works
- as well as the +,, that the DOS manual uses. And, as the manual
- points out, don't restamp all the files on your disk by using *.* in
- place of the filename. Finally, STAMP.BAT will work fine without the
- second %1.
-
- -----------------------------------------------------------------
- Dating Your Documents
- (PC Magazine Vol 4 No 11 May 28, 1985 PC Tutor)
-
- The simplest way to create on demand a kind of "date stamp" that
- you can add to a document file is to type in the date yourself. If you
- want to create a program to do this, use the DOS DATE command with
- redirected input and output. This is a good way to learn about
- redirection even if you don't use the program.
- Consider a line such as:
- A>DATE<CARRIAGE>TODAY
- Here, CARRIAGE is a tiny text file that consists of one empty
- line and a carriage return -- to simulate answering the DATE question
- by pressing the enter key. The < sign before the word CARRIAGE is a
- redirect symbol that means: use the file CARRIAGE as an input source
- (instead of the keyboard). You can construct the CARRIAGE file with
- the COPY command:
- A>COPY CON:CARRIAGE <Enter>
- <Press any key again>
- <Press F6><Enter>
- A>
- For this application you only need to create CARRIAGE once and
- then leave it on the disk. Note that the file is only 2 characters
- long (a carraige return and a Ctrl-Z end-of-file marker), through it
- may take up 1025 bytes on your disk.
- The > sign before the word TODAY means that DOS will create a file
- named TODAY, putting the output of DATE into the file. In current
- jargon, the output of the program DATE has been "redirected" to the
- file TODAY. Having created the CARRIAGE file, when you now type your
- command:
- DATE<CARRIAGE>TODAY
- you will find a TODAY file has been created with the following lines in
- it:
- Current date is 5-28-85
- Enter new date (mm-dd-yy):
- This is exactly what DOS would have typed on the screen.
- You can get a bit fancier and strip off the last line quite easily
- using the DOS FIND program. It is a DOS program (not an intrinsic
- command), so FIND.EXE would need to be on the disk. Instead of your
- previous command line, type:
- A>DATE<CARRIAGE FIND "Current">TODAY
- Now the TODAY file will only retain the first line of the DATE result
- -- the line containing the word "Current". This works by piping ( )
- the output of DATE to the FIND program. FIND thus uses the output of
- DATE instead of the keyboard for input. In this case, that looks like
- two lines of text. FIND notices the word "Current" on line 1 and
- passes it to the file TODAY. The second line has no such word and
- therefore gets swallowed up.
- If you are trying to integrate this with your word processor get
- the startup (AUTOEXEC) routine to run the line that creates the TODAY
- file. Almost every word processor will let you merge or include an
- existing file (TODAY) with your current filt. Then your printout will
- always contain a single line saying: Current date is Tue 5-28-1985 --
- updated, of course, each day.
- On a PC-XT under DOS 2.1, you don't need to use the DOS "pipe,"
- FIND. The "Enter new date" appears on the screen only (and the carriage
- return from CARRIAGE popped you past it) and was not transferred to the
- TODAY file.
-
- -----------------------------------------------------------------
- In Search of Lost Time
- (PC Magazine Vol 4 No 25 Dec 10, 1985 PC Tutor)
-
- Persons tired of seeing lists of files dated 1/1/80 might want to
- use the DATECHK.COM file. DATECHK.COM returns an "error" code that
- equals the year set in DOS minus 1980. The batch file fragment shown
- below which you can add to your AUTOEXEC.BAT file to run when you
- boot up, uses this error code with an ERRORLEVEL check to continually
- ask for the date if it's still set at 1980.
-
- echo off
- cls
- :getdate
- date
- datechk
- if errorlevel 1 goto gooddate
- echo Gimme a break ....
- echo It's not 1980 anymore.
- goto getdate
- :gooddate
-
- DATECHK.COM:
-
- A>DEBUG
- -A
- xxxx:0100 MOV AH,2A
- xxxx:0102 INT 21
- xxxx:0104 MOV AX,CX
- xxxx:0106 SUB AX,7BC
- xxxx:0109 MOV AH,4C
- xxxx:010B INT 21
- xxxx:010D
- -N DATECHK.COM
- -R CX
- CX 0000
- :000D
- -W
- Writing 000D bytes
- -Q
-