%%~ 在 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
提取文件名或日期戳。
在我继承并必须编辑的 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
提取文件名或日期戳。