Windows 在批处理文件中,如何将文件名和文件扩展名与文件路径分开?
我有一个接受文件路径的批处理文件。然后我需要分别隔离文件名和文件扩展名。例如,如果我的文件路径是“\svr-01\my Docs\my Spreadsheet.xls”,那么我需要两个单独的变量;一个包含“我的电子表格”,另一个包含“.xls” 到目前为止,我已经将文件名和扩展名与路径分开:Windows 在批处理文件中,如何将文件名和文件扩展名与文件路径分开?,windows,batch-file,Windows,Batch File,我有一个接受文件路径的批处理文件。然后我需要分别隔离文件名和文件扩展名。例如,如果我的文件路径是“\svr-01\my Docs\my Spreadsheet.xls”,那么我需要两个单独的变量;一个包含“我的电子表格”,另一个包含“.xls” 到目前为止,我已经将文件名和扩展名与路径分开: set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAM
set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~nxA"
echo.%FILENAME%
然后如何将文件名和扩展名与此变量分开?您可以使用
%~n
作为文件名,使用%~x
作为扩展名
你已经做的只是将两者结合起来。对每个部分分别使用它们
rem Filename
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~nA"
rem Extension
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~xA"
有关更多选项,请参阅。您可以使用
%~n
作为文件名,使用%~x
作为扩展名
set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls
for /F "delims=" %%A in ("%FILEPATH%") do (
set "FILEFULLNAME=%%~nxA"
set "FILENAME=%%~nA"
set "FILEEXT=%%~xA"
)
set file
你已经做的只是将两者结合起来。对每个部分分别使用它们
rem Filename
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~nA"
rem Extension
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~xA"
有关更多选项,请参阅。我认为您应该查看
set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls
for /F "delims=" %%A in ("%FILEPATH%") do (
set "FILEFULLNAME=%%~nxA"
set "FILENAME=%%~nA"
set "FILEEXT=%%~xA"
)
set file
%~1-展开%1以删除任何周围的引号(“)%~f1-将%1扩展为完全限定的路径名
%~d1-仅将%1扩展为驱动器号
%~p1-仅将%1扩展到路径
%~n1-仅将%1扩展为文件名
%~x1-仅将%1扩展为文件扩展名
%~s1-扩展路径仅包含短名称
%~a1-将%1扩展为文件属性
%~t1-将%1扩展到文件的日期/时间
%~z1-将%1扩展到文件大小
特别是 %~p1-仅将%1扩展到路径
我想你应该看看 %~1-展开%1以删除任何周围的引号(“)
%~f1-将%1扩展为完全限定的路径名
%~d1-仅将%1扩展为驱动器号
%~p1-仅将%1扩展到路径
%~n1-仅将%1扩展为文件名
%~x1-仅将%1扩展为文件扩展名
%~s1-扩展路径仅包含短名称
%~a1-将%1扩展为文件属性
%~t1-将%1扩展到文件的日期/时间
%~z1-将%1扩展到文件大小
特别是 %~p1-仅将%1扩展到路径
听起来很简单,那么我还需要两个for循环吗?dbenham在一个循环中完成了,使用一个代码块设置多个变量sunds很简单,那么我还需要两个for循环吗?dbenham在一个循环中完成了,使用一个代码块设置多个感兴趣的变量sout,最后一行做了什么?@BaliC-它只是打印了一个所有以
文件
开头的变量定义,不区分大小写。我把它放在那里只是为了显示赋值的结果。出于兴趣,最后一行做什么?@BaliC-它只是打印出所有以文件
开头的变量定义,不区分大小写。我把它放在那里只是为了显示赋值的结果作业。