我试图理解其他人写过的一个非常复杂的(对我来说无论如何)批处理文件。
写这篇文章的人已经不在了,所以我可以试着找出到底是怎么回事。
首先,我需要了解这一行正在做什么: -
for /f "skip=4 tokens=1,5" %%A in ('dir /tc /o-d %i%\PICKS*') do (
有人可以帮忙吗?
答案 0 :(得分:0)
这是带有/ f选项的for循环。它循环遍历文件或命令,在本例中为命令dir /tc /o-d %i%\PICKS*
。
看一看dir /tc /o-d word*
本身的作用(阅读dir /?
选项),它会让你更容易理解循环。
基本上,命令的输出是dir
(显示目录中的文件),时间字段显示创建日期,所有文件按日期降序排列。该命令适用于文件夹%i%(预先设置的变量)。 “PICKS *”是“掩码”,即显示以“PICKS”开头的所有文件。这就是通配符(星号)的含义(任何字符都可以跟随)。
for循环现在接受该输出并将其分配给%% A(临时迭代变量)。它跳过前4行(在dir
的情况下只是您不想要的标题),并且对于每个后续行(文件)挑出第一个和第五个单词(由空格分隔,因为空格是默认分隔符)。 %% A现在是日期,%% B(第二个指定的标记/第五个字)是文件名的第二个字(如果有的话)。这些变量可以在do (...
部分中使用。