有人可以解释 /f 的代码 __ "tokens=2*" %%i 在 ('SVN 状态 %1 ^| 查找 "?" ')



我想传递 3 个文件名(

C:Usersc_skanikDesktopdirfile1
C:Usersc_skanikDesktopdirfile2
C:Usersc_skanikDesktopdirfile3

) 到下面的代码

for /f "tokens=2*" %%i in ('svn status %1 ^| find "?"') do svn add "%%i"

我该怎么做?

>svn status %1 ^| find "?"将过滤svn status命令的输出(传递第一个参数),并显示包含"?"的行。管道被转义,因为命令是从 for 循环调用的。

for /f处理命令的输出。"tokens=2*"表示获取第二个单词,之后的所有内容都将计为第三个单词。这些单词是使用按字母顺序排列的标记访问的 - 在这种情况下%%i,因此svn add "%%i"将从命令的输出中获取第二个单词,将在svn add中替换

要处理这三个文件,您可以嵌套两个 for 循环:

for %%# in(C:Usersc_skanikDesktopdirfile1 C:Usersc_skanikDesktopdirfile2 C:Usersc_skanikDesktopdirfile3) do (
 for /f "tokens=2*" %%i in ('svn status %%# ^| find "?"') do svn add "%%i"
)

最新更新