Solved

Regarding Windows/Dos scripting in WIN2K

Posted on 2003-12-04
2
504 Views
Last Modified: 2010-04-13
Hello,

I have some files in this format

testss_db_200312041101.BAK
ts_db_200312030901.bak
abcsscscscs_db_200312030707.BAK


Is there a way i can write a script to go through all the files in a particular directory
and get that datetime part (200312041101)

Thanks in Advance.
0
Comment
Question by:schinni
2 Comments
 
LVL 83

Accepted Solution

by:
oBdA earned 75 total points
ID: 9881164
This extracts your timestamps in the current directory. For your convenience (if you should need it), it extracts the date and time as well.

====8<----[GetTimeStamp.cmd]----
@echo off
setlocal
for /f "tokens=*" %%a in ('dir *.bak /b /a:-d') do call :process "%%a"
goto leave

:process
set FileName=%~1
set FileNameNoExt=%~n1
set TimeStamp=%FileNameNoExt:~-12%
set FileYY=%TimeStamp:~0,4%
set FileMM=%TimeStamp:~4,2%
set FileDD=%TimeStamp:~6,2%
set FileHour=%TimeStamp:~8,2%
set FileMin=%TimeStamp:~10,2%
echo [%FileName%]
echo   +--Timestamp: %TimeStamp%
echo   +--File date: %FileMM%/%FileDD%/%FileYY%
echo   +--File time: %FileHour%:%FileMin%
goto :eof

:leave
====8<----[GetTimeStamp.cmd]----
0
 

Author Comment

by:schinni
ID: 10257993
Hi obda,


Can you help me with this
Hello,
I  have to  delete files older than 3days
My files end with this extension 2000402021211..etc
so i am getting the extension and comparing with
currentdate -3


basically i want to do %FileDD%/ -3

rem @echo off
setlocal


for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=5-8 delims=:., " %%a in ('echo:^|time') do (
set hh=%%a
set mn=%%b
set ss=%%c
set cs=%%d
)

set curtim=%d:~6,4%%d:~0,2%%d:~3,2%%hh%%mn%
:: Current Date -3

I am doing this because of octal 8 and 9

if %d:~3,2% LSS 10 set /a dat = %d:~4,1%-3
if %d:~3,2% GTR 7 set /a dat = %d:~4,1%-3
if %d:~3,2% GTR 09 set /a dat = %d:~3,2%-3
if %d:~3,2% LSS 8 set /a dat = %d:~3,2%-3



if %dat% LSS 10 set dat=0%dat%
if %hh% LSS 10 set hh=0%hh%

set timestr=%d:~6,4%%d:~0,2%%dat%%hh%%mn%

I  am doing this to getting the currentdate and subtracting date varaible with -3
it works great but when it's from day 1 to 3 of the month i am getting negative variables
and also one more thing is
cuurent date is 200402021111 i am subtracting 02 -3 which i am getting -1
and the whole doesn't work correctly ..

can anybody help me with the workaround

Thanks in Advance!

0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

NTFS file system has been developed by Microsoft that is widely used by Windows NT operating system and its advanced versions. It is the mostly used over FAT file system as it provides superior features like reliability, security, storage, efficienc…
One of the biggest threats in the cyber realm pertains to advanced persistent threats (APTs). This paper is a compare and contrast of Russian and Chinese APT's.
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question