批处理 字符串截取 :从完整路径中截取文件名

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:42:23
要求DOS 批处理命令实现:从完整路径中截取文件名

如: D:\aaa\bbb\2009_file.txt

我想从上面这个路径中得到字符串 “file” 。

注意,目录名是未知的,目录深度是未知的,但文明名格式符合 “年份_字符串.后缀” 格式。我想要的就是其中的 '字符串'。

谢谢
自己解决了问题。如下:

@echo off

set /p file=文件:
call :deal %file%
pause
:deal
set table=%~n1
echo %table:~5%

@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%I IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
IF EXIST %%I:\* (
CD /D %%I:
FOR /F "DELIMS=" %%A IN ('DIR /S/B 2009_*.txt 2^>nul') DO (
SET FOO=%%~NA
SET FOO=!FOO:*_=!
ECHO/!FOO! %%A
)
)
)
)
PAUSE>NUL

代码仅作演示,同时在截取字符后面添加了文件路径{%%A}。