批处理 字符串截取 :从完整路径中截取文件名
要求DOS批处理命令实现:从完整路径中截取文件名如:D:\aaa\bbb\2009_file.txt我想从上面这个路径中得到字符串“file”。注意,目录名是未知的,目录...
要求DOS 批处理命令实现:从完整路径中截取文件名
如: D:\aaa\bbb\2009_file.txt
我想从上面这个路径中得到字符串 “file” 。
注意,目录名是未知的,目录深度是未知的,但文明名格式符合 “年份_字符串.后缀” 格式。我想要的就是其中的 '字符串'。
谢谢
自己解决了问题。如下:
@echo off
set /p file=文件:
call :deal %file%
pause
:deal
set table=%~n1
echo %table:~5% 展开
如: D:\aaa\bbb\2009_file.txt
我想从上面这个路径中得到字符串 “file” 。
注意,目录名是未知的,目录深度是未知的,但文明名格式符合 “年份_字符串.后缀” 格式。我想要的就是其中的 '字符串'。
谢谢
自己解决了问题。如下:
@echo off
set /p file=文件:
call :deal %file%
pause
:deal
set table=%~n1
echo %table:~5% 展开
1个回答
展开全部
@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}。
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}。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询