我想传递 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"
)