我有这个代码:
for /f "delims=" %%a in ('dir /s /b sqlncli*.msi') do set "name=%%a"
它给了我文件的完整路径。
我需要的不是完整路径,只是文件名。
我如何从完整路径中提取它?
答案1
我只需要这个完整路径中的文件名。
对于 /f "delims=" %%a 在 ('dir /s /b sqlncli*.msi') 中设置 "name=%%a"
使用%~n
运算符:
for /f "delims=" %%a in ('dir /s /b sqlncli*.msi') do set "name=%%~na"
如果您想要文件名和扩展名,请使用 %~nx
运算符:
for /f "delims=" %%a in ('dir /s /b sqlncli*.msi') do set "name=%%~nxa"
%~n1
扩展%1
为没有文件扩展名或路径的文件名 -MyFile
或者如果仅存在路径,且没有尾随反斜杠,则扩展为该路径中的最后一个文件夹。
%~x1
仅扩展%1
到文件扩展名 -.txt
来源参数- 命令行参数(或参数)是传递到批处理脚本的任何值。
进一步阅读
- Windows CMD 命令行的 AZ 索引 | SS64.com
- Windows CMD 命令(分类) - Windows CMD - SS64.com
- 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。