batch script file to move based on

I need a batch script to move the last file in a folder called "data" but we need to check the last modified time stamp using WMIC we need to go down to miliseconds
WMIC DATAFILE WHERE "PATH='\\Log\\'" GET Name, LastModified, name

Open in new window

LVL 5
CalmSoulAsked:
Who is Participating?
 
Bill PrewConnect With a Mentor Commented:
@echo off
setlocal EnableDelayedExpansion
set Count=0
set Group=1
for /F "tokens=*" %%A in ('dir /a-d /b /o-d /tc "c:\source\*.*"') do (
  set /A Count+=1
  if !Count! GTR 20000 (
    set /A Group+=1
    set Count=1
  )
  echo Group:!Group!, Count:!Count!, File:%%A
  move "%%A" "c:\destination\"
)

Open in new window

0
 
Bill PrewCommented:
I think should do what you want.  If it seems to get the correct file then change the ECHO at the end to a MOVE of the file to wherever you want it.

@echo off
for /F "tokens=1*" %%A in ('wmic datafile where "path='\\Log\\'" get LastModified^,Name ^| find /i /v "LastModified" ^| sort') do set LatestFile=%%B
echo %LatestFile%

Open in new window

~bp
0
 
CalmSoulAuthor Commented:
where you have mentioned to move to data folder?
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
CalmSoulAuthor Commented:
how we can move files in batches eg first 100 then next 100 so on...
need to add a FOR loop
0
 
Bill PrewCommented:
You'll need to be clearer about what you need the script to do please.  I thought you just wanted to find the most recent file, and move it.  But it sounds like you want to move them all, into some groupings by date/time.  Not clear yet though.

~bp
0
 
CalmSoulAuthor Commented:
bp:

Basically we have 30,000 files we need to move to different folder oldest first (based on date/time miliseconds) then next oldest and then so on.

I am sorry if we were not clear earlier?
0
 
CalmSoulAuthor Commented:
bp: any update we need as soon as possible
0
 
CalmSoulAuthor Commented:
bp:

any update?
0
 
CalmSoulAuthor Commented:
I  am getting following
C:\Log\New Folder>setlocal EnableDelayedExpansion

C:\Log\New Folder>set Count=0

C:\Log\New Folder>set Group=1

C:\Log\New Folder>for /F "tokens=*" %A in ('dir /a-d /b /o-d /tc "c:\log\*.*"')
do (
set /A Count+=1
 if !Count! GTR 20000 (
set /A Group+=1
 set Count=1
)
 echo Group:!Group!, Count:!Count!, File:%A
 move "%A" "C:\Log\New Folder\New Folder\"
)

C:\Log\New Folder>(
set /A Count+=1
 if !Count! GTR 20000 (
set /A Group+=1
 set Count=1
)
 echo Group:!Group!, Count:!Count!, File:move.bat
 move "move.bat" "C:\Log\New Folder\New Folder\"
)
Group:1, Count:1, File:move.bat
The system cannot find the file specified.

C:\Log\New Folder>(
set /A Count+=1
 if !Count! GTR 20000 (
set /A Group+=1
 set Count=1
)
 echo Group:!Group!, Count:!Count!, File:Log_13-8-2010.txt
 move "Log_13-8-2010.txt" "C:\Log\New Folder\New Folder\"
)
Group:1, Count:2, File:Log_13-8-2010.txt
The system cannot find the file specified.

C:\Log\New Folder>pause
Press any key to continue . . .

Open in new window

0
 
Bill PrewCommented:
It looks like you saved the BAT script as a file called MOVE.BAT.  That will be a problem, since the MOVE command is a reserved internal command name.  Rename the BAT from from MOVE.BAT to something else like MYMOVE.BAT.

~bp
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.