如何在perl脚本中检查perforce中是否存在文件

如何在perl脚本中检查perforce中是否存在文件,perl,perforce,Perl,Perforce,我可以在perl脚本中使用if(-e$file)来判断linux中是否存在文件。 我可以在linux中运行p4 fstat$file来判断perforce depot中是否存在文件。 但是如何使用perl脚本检查文件是否在perforce depot中?您可以使用backtick操作符从perl脚本运行命令: `p4 files $file` 这将作为一个真实的检查,以查看Perforce中是否存在文件: if (`p4 -F %depotFile% files "$file"`) 请注意,

我可以在perl脚本中使用
if(-e$file)
来判断linux中是否存在文件。
我可以在linux中运行
p4 fstat$file
来判断perforce depot中是否存在文件。

但是如何使用perl脚本检查文件是否在perforce depot中?

您可以使用backtick操作符从perl脚本运行命令:

`p4 files $file`
这将作为一个真实的检查,以查看Perforce中是否存在文件:

if (`p4 -F %depotFile% files "$file"`)

请注意,这要求您在运行脚本之前登录到Performance server(如果无法连接,则上述情况下将始终显示“false”)。

您可以使用backtick操作符从Perl脚本运行命令:

`p4 files $file`
这将作为一个真实的检查,以查看Perforce中是否存在文件:

if (`p4 -F %depotFile% files "$file"`)

请注意,这要求您在运行脚本之前登录到Perforce服务器(如果无法连接,则上述情况下始终会出现“false”)

根据所问问题,您似乎可以使用Perl的
system()
exec()
方法运行p4命令,或者如上所述使用“backticks”操作符

backtics操作符将允许您从命令中捕获
STDERR
STDOUT
,以便您可以将其用于任何用途

其他两个将尝试运行该命令并相应地给出返回值,如中所述

因此,通常可以执行以下命令:

p4 files $file

echo $?
第二个命令将获取最后一个shell命令的退出状态

使用反勾号时,您还可以尝试以下操作:

Windows:
执行命令2>NUL

Linux/OSX:
执行命令2>/dev/null

这些将抑制STDERR,并仅提供输出。如果使用“1”而不是“2”,则将禁止显示标准输出,并仅获取错误

最后,如果两者都需要,可以使用:

Windows/Linux/macOS:
执行1>2的命令&

这将连接
STDOUT
STDERR


简而言之,您可以使用Perl在任何操作系统上运行任何现有程序,并且有多种方法来处理结果。

根据所问的问题,您似乎可以使用Perl的
system()
exec()
方法运行p4命令,或者如上所述使用“backticks”操作符

backtics操作符将允许您从命令中捕获
STDERR
STDOUT
,以便您可以将其用于任何用途

其他两个将尝试运行该命令并相应地给出返回值,如中所述

因此,通常可以执行以下命令:

p4 files $file

echo $?
第二个命令将获取最后一个shell命令的退出状态

使用反勾号时,您还可以尝试以下操作:

Windows:
执行命令2>NUL

Linux/OSX:
执行命令2>/dev/null

这些将抑制STDERR,并仅提供输出。如果使用“1”而不是“2”,则将禁止显示标准输出,并仅获取错误

最后,如果两者都需要,可以使用:

Windows/Linux/macOS:
执行1>2的命令&

这将连接
STDOUT
STDERR


因此,简而言之,您可以使用Perl在任何操作系统上运行任何现有程序,并且有多种方法来处理结果。

p4命令如何表示存在?使用backticks或should可以工作。
p4
命令如何表示存在?使用倒勾或倒勾应该有效。