Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Regarding Windows/Dos scripting in WIN2K

Posted on 2003-12-04
2
Medium Priority
?
510 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 86

Accepted Solution

by:
oBdA earned 300 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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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…
Google webmaster tool or Google search console is an imperative tool for solving different website relevant issues. The amazing features of this tool greatly help to check the indexing and improve the visibility of the site.
this video summaries big data hadoop online training demo (http://onlineitguru.com/big-data-hadoop-online-training-placement.html) , and covers basics in big data hadoop .
Integration Management Part 2
Suggested Courses
Course of the Month11 days, 20 hours left to enroll

564 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