我需要一个环境变量中相对路径下文件的基本名称+扩展名

我需要一个环境变量中相对路径下文件的基本名称+扩展名

我需要环境变量中相对路径中文件的基本名称 + 扩展名。例如:如果我输入参数,则..\..\Appdata\bin\test.jpg生成的环境变量应包含test.jpg。如果我输入类似这样的 bat 脚本的参数sub1\sub2\input.png,则它应包含input.png。这可以通过 for 语句、使用delims=\并选择 LAST 字段来完成。我不知道如何选择最后一个字段。

答案1

在文中 从变量中批量提取路径和文件名 找到这个脚本用于从环境变量中提取所有文件部分:

@ECHO OFF
SETLOCAL
set file=C:\Users\l72rugschiri\Desktop\fs.cfg
FOR %%i IN ("%file%") DO (
ECHO filedrive=%%~di
ECHO filepath=%%~pi
ECHO filename=%%~ni
ECHO fileextension=%%~xi
)

从脚本第一个参数中提取信息的完整列表.bat

%~1 - expands %1 removing any surrounding quotes (")
%~f1 - expands %1 to a fully qualified path name
%~d1 - expands %1 to a drive letter only
%~p1 - expands %1 to a path only
%~n1 - expands %1 to a file name only
%~x1 - expands %1 to a file extension only
%~s1 - expanded path contains short names only
%~a1 - expands %1 to file attributes
%~t1 - expands %1 to date/time of file
%~z1 - expands %1 to size of file

例如可以使用:

set file=%~f1
set filepath=%~dp1
set filename=%~nx1

或者作为局部 FOR 变量:

for %%a in (..\Desktop\fs.cfg) do (
    set file=%%~fa
    set filepath=%%~dpa
    set filename=%%~nxa
)    

相关内容