在 SQR 中,如果我们想要检查 Oracle PeopleSoft 安装上的服务器上是否存在文件,可以使用该函数
#filexist = 存在($Exact_FileName);
如果存在,那么#filexist将为0。但是如果我没有确切的文件名,因为服务器上的文件可能带有日期时间等后缀,那么有没有办法找到这样的文件。例如,我正在查找以“ABC”开头的文件,但服务器上的文件可能是“ABC_123”。有SQR功能吗?
谢谢你。
丹尼尔
Exists 函数似乎只能搜索具有确切名称(包括确切扩展名)的文件。它似乎无法搜索具有起始字符串的文件。
利用 Bobby 评论中的想法,我将其放在一起,它可以在 Windows 上运行,但如果需要,可以修改为在 Linux 上运行。
begin-program
let $comspec = getenv('COMSPEC')
let $cmd = $comspec || ' /c dir /b ABC*.* > fileList.txt'
call system using $cmd #error wait
if #error ! returns non-zero if error
show 'command error'
stop
end-if
if exists('fileList.txt') ! returns zero if exists
show 'file does not exist'
stop
end-if
open 'fileList.txt' as 1 for-reading record=512
while not #end-file
read 1 into $abc_file:512
if length($abc_file) ! skips blank at end
show $abc_file
! do what you want with each file here...
end-if
end-while
close 1
let #status = exists('fileList.txt')
if #error
show 'could not delete file'
end-if
end-program