我正在根据文件扩展名设置自己的变量,运行时文件名未知:
for %%a in (*.drf) do (set "InFile=%%a")
我想稍后重用此变量执行其他操作。我希望能够像%~n1
只使用参数 1 的文件名一样使用它。例如:MyFile.drf
== MyFile
。此外,%~nx1
将打印参数 (1) (nx1)的 (n)ame 和 e(x)tension 。根据我的最后说明,是否有类似的方法来构造我像这样设置的自定义变量?我试过了,%~nInFile
但%%~nInFile
没有成功。
没有。位置
%1
和循环%a
/%%a
是 cmd 支持这种扩展的唯一位置。您可以将这些扩展作为
for
命令的一部分来执行,例如set "InFileName=%%~na"
,或者您可以创建一个执行的子例程set "InFileName=%~1"
并用调用它call :thing "%InFile%"
,作为可能的解决方法。