%%~ 在 Windows 批处理文件中做什么?

What that %%~ do in a Windows batch file?

在我继承并必须编辑的 Windows 批处理文件中,有这一行(我正在简化以提高可读性):

FOR %%m in (*.XML) DO IF EXIST D:\DATA\%%~m COPY D:\DATA\%%~m subdir

D:\Data 中的 XML 个文件复制到当前文件夹的 subdir 子目录中。

我的问题是 %%~m%%m 有什么影响?

问题已在@Stephan、@rojo、@Magoo 的评论中得到解答。

此处进行了总结,因此问题被标记为已回答:

%%~m 中的 ~ 字符从变量 m.

中删除周围的引号

如果它是包含空格的文件名,您可以将引号放在整个路径名周围,例如:

if exist "D:\Data\%%~m" copy "D:\Data\%%~m" subdir

您可以从 for /? 了解这些替换。变量替换可以包含其他操作,例如 %%~nm%%~tm 提取文件名或日期戳。