我是批量编程的新手。我想从String中找到文件名及其扩展名。我看到路径所在的答案是变量,例如。
for /f %%a in ('dir /B') do (
file_name= %%~nxa
)
但是以下代码不起作用。
stringvar="c:/folder1/folder2/abc.txt"
file_name=%%~nxstringvar
我在表达式中尝试了很多排列和stringvar以及%%和~nx的组合。但我没有得到文件名。
请考虑以下代码以了解需求。
stringvar="c:/folder1/folder2/abc.txt"
filename=getFileName(stringvar)
欢迎任何答案或建议。谢谢你提前
答案 0 :(得分:2)
特殊var参数仅适用于特殊变量(%0,%1等)和" FOR" vars,所以首先你需要调用任何像参数一样传递变量的东西,或者做一个FOR:
@Echo OFF
SET "stringvar=c:\folder1\folder2\abc.txt"
Call :sub "%stringvar%"
Pause&Exit
:sub
Echo FILENAME: "%~nx1"
GOTO:EOF
编辑:不要使用" /"斜杠,你在Windows上,并没有像你一样包围var,看看我的例子。