How do I parse a filename?

Windows 2000 Professional.

I have files like this:

C:\temp
test_001_xxx.txt
test_002_xxx.txt
test_003_xxx.txt

The 001 is the dept code.  

I want to reference the dept code in various sections of my dos script.
seckelAsked:
Who is Participating?
 
SteveGTRConnect With a Mentor Commented:
Give this a try:

@echo off

setlocal

for /f "delims=" %%a in ('dir /b test_???_???.txt 2^>NUL') do call :PROCESS "%%a"

goto :EOF

:PROCESS

set FileName=%~1

echo File name:   %FileName%
echo Department: %FileName:~5,3%

Good Luck,
Steve
0
 
mrdtnCommented:
@echo off
setlocal enabledelayedexpansion

for %%f in (*.txt) do (
      set file=%%f
      set dept=!file:~5,3!
      echo !dept!
)
pause
0
 
seckelAuthor Commented:
Steve

You are most wise and knowing when it comes to DOS....
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.