$NOWIN DIM F$, T$, D$, LineSeparator$ LineSeparator$ = REPEAT$(73,"*") IF COMMAND$ = "" THEN PRINT LineSeparator$ PRINT "Touch by Kevin Diggins [* BUILT with BCX *]" PRINT "Touch is used to modify the time and date stamps of one or more files" PRINT "Usage : Touch Filespec [Date] [Time] ............ Note: Wildcards okay" PRINT LineSeparator$ PRINT "Example 1: Touch MyFile.Txt ........................ Osys-Time Osys-Date" PRINT "Example 2: Touch MyFile.Txt HH:MM:SS .............. User-Time Osys-Date" PRINT "Example 3: Touch MyFile.Txt HH:MM ................. User-Time Osys-Date" PRINT "Example 4: Touch MyFile.Txt HH .................... User-Time Osys-Date" PRINT "Example 5: Touch MyFile.Txt HH:MM:SS MM/DD/YYYY .. User-Time User-Date" PRINT "Example 6: Touch MyFile.Txt HH:MM MM/DD/YYYY .. User-Time User-Date" PRINT "Example 7: Touch MyFile.Txt HH MM/DD/YYYY .. User-Time User-Date" PRINT LineSeparator$ END END IF F$ = COMMAND$(1) T$ = COMMAND$(2) : IF T$ = "" THEN T$ = TIME$ D$ = COMMAND$(3) : IF D$ = "" THEN D$ = LEFT$(DATE$,6) + TIME$(5) IF NOT INSTR(F$,"*") AND NOT INSTR(F$,"?") THEN TOUCH (F$,D$,T$) ELSE F$ = FINDFIRST$(COMMAND$(1)) WHILE F$ > "" TOUCH (F$,D$,T$) F$ = FINDNEXT$ WEND END IF SUB TOUCH (F$,D$,T$) DIM sysTime AS SYSTEMTIME DIM fTime AS FILETIME DIM fLocTime AS FILETIME DIM hFile AS HANDLE DIM ofStruct AS OFSTRUCT '******************************************************** hFile = CreateFile(F$,GENERIC_READ | GENERIC_WRITE, _ 0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0) '******************************************************** sysTime.wDay = VAL ( MID$ (D$,4,2) ) sysTime.wMonth = VAL ( LEFT$ (D$,2) ) sysTime.wYear = VAL ( RIGHT$ (D$,4) ) '******************************************************** sysTime.wMilliseconds = 0 sysTime.wSecond = VAL ( RIGHT$ (T$,2) ) sysTime.wMinute = VAL ( MID$ (T$,4,2) ) sysTime.wHour = VAL ( LEFT$ (T$,2) ) '******************************************************** ' convert system date/time to file structure. '******************************************************** SystemTimeToFileTime (&sysTime, &fLocTime) '******************************************************** ' convert local file time to UTC file time ' setfiletime expects a time that is relative to utc time '******************************************************** LocalFileTimeToFileTime ( &fLocTime, &fTime) '******************************************************** ' set the file time '******************************************************** SetFileTime (hFile, NULL, NULL, &fTime) CloseHandle (hFile) END SUB