8

我目前正在寻找一种方法来批量获取变量并且只解析出文件名。

例如,我从另一个应用程序传递我的批处理文件 -s 参数,该参数随后设置为我的源变量。源文件变量通常包含如下内容:C:\Program Files\myapp\Instance.1\Data\filetomove.ext。

我假设从变量的末尾读取直到第一个“\”并将结果设置为新的变量文件名,但我无法成功使用“for /f”命令。

任何帮助将非常感激!

更新:只有标准的 XP 或 Windows 2000/2003 可用...(不能假设已安装资源工具包)。

4

2 回答 2

9

如果它作为脚本的参数出现,即 %1、%2 等,您可以只将文件名和扩展名提取到一个变量中,如下所示:

set FILENAME=%~nxN

其中 N 是参数的索引。例如,此脚本将仅回显第一个参数的文件名:

@echo off
set FILENAME=%~nx1
echo %FILENAME%
于 2009-01-18T04:54:15.477 回答
2

略微改进的版本:

set FILENAME="%~nx1"

额外的括号将确保在批处理执行期间不会干扰特殊字符,例如“&”。

于 2011-10-27T23:33:53.550 回答