在更新perforce作业时,我遇到使用管道和使用文件输入的以下区别: 在进行更新时(在windows cmd shell中),如下所示:
(echo job: job00101&echo.status: open&echo.description: One line only)|p4.exe -p myServer:1234 -u myUser job -f -i
作业中的描述最后有一个空白,还有一个空行。 (可见,使用P4V编辑作业时)
当我使用两个命令和一个中间文件
尝试相同的操作时(echo job: job00101&echo.status: open&echo.description: One line only) >test.txt
p4.exe -p myServer:1234 -u myUser job -f -i <test.txt
描述恰好包含一行而没有尾随空格。这就是我在使用烟斗时所期望的。
我需要的是一行命令而不需要中间文件。我不明白为什么管道与文件输出和输入的工作方式不同。
答案 0 :(得分:2)
我认为在DOS批处理中cmdline重定向严重破坏。 Powershell是一个选择吗?
"job: job00101`nstatus: open`ndescription: One line only" | p4.exe -p myServer:1234 -u myUser job -f -i
作为替代方案,如果你必须在DOS批处理中运行,你可以使用它:
powershell -Command "\"job: job00101`nstatus: open`ndescription: One line only\" | p4.exe -p myServer:1234 -u myUser job -f -i"