Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我的perl脚本没有';我看不到txt文件_Windows_Perl_Unc - Fatal编程技术网

Windows 我的perl脚本没有';我看不到txt文件

Windows 我的perl脚本没有';我看不到txt文件,windows,perl,unc,Windows,Perl,Unc,我的Perl程序创建了这个文件 10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.txt 在方法中,我有一个代码: if(-e$report){ #我们在这里解析文件,最后是一些代码 { 其他的 } 打印“***跳过\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\u RECS\u PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\10001.ICNTL.20160602

我的Perl程序创建了这个文件

10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.txt
在方法中,我有一个代码:

if(-e$report){
#我们在这里解析文件,最后是一些代码
{     
其他的
}     
打印“***跳过\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\u RECS\u PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT
}     

我无法理解脚本为什么看不到该文件。我已经逐字检查了好几次。这可能是因为大写的
TXT
,但实际上它是小写的吗?

是您的文件
10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT
目录
\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\RECS\PFI

猜测您没有正确转义文件路径。即使使用单引号,也无法在中表示两个前导反斜杠,而不转义其中至少一个

检查
print$report“\n”
的输出以查看您真正编写的内容

我倾向于在路径字符串的开头使用四个反斜杠,如下所示

my $report = '\\\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND_RECS_PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\‌​10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT';

print -e $report ? "Found\n" : "Not found\n";
Perl允许您在Windows路径中使用前斜杠代替反斜杠,因此如果愿意,您可以编写它,但类似的路径在其他Windows软件中无效

my $report = '//NYNAS/NYNDS/VOL/DATA/INVACCT/FUND_RECS_PFI/10001.ICNTL.20160603.PROD.GAAP.PFI/‌​10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT';
或者另一种方法是重新定位当前的工作目录。您不能在Windows命令行上
cd
到UNC路径,但Perl允许您成功地
chdir

chdir '//NYNAS/NYNDS/VOL/DATA/INVACCT/FUND_RECS_PFI' or die $!;

此后,所有相关文件路径都将相对于网络系统上的新工作目录

是否为目录中的文件
10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.txt
\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\RECS\u PFI

猜测您没有正确转义文件路径。即使使用单引号,也无法在中表示两个前导反斜杠,而不转义其中至少一个

检查
print$report“\n”
的输出以查看您真正编写的内容

我倾向于在路径字符串的开头使用四个反斜杠,如下所示

my $report = '\\\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND_RECS_PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\‌​10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT';

print -e $report ? "Found\n" : "Not found\n";
Perl允许您在Windows路径中使用前斜杠代替反斜杠,因此如果愿意,您可以编写它,但类似的路径在其他Windows软件中无效

my $report = '//NYNAS/NYNDS/VOL/DATA/INVACCT/FUND_RECS_PFI/10001.ICNTL.20160603.PROD.GAAP.PFI/‌​10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT';
或者另一种方法是重新定位当前的工作目录。您不能在Windows命令行上
cd
到UNC路径,但Perl允许您成功地
chdir

chdir '//NYNAS/NYNDS/VOL/DATA/INVACCT/FUND_RECS_PFI' or die $!;

此后,所有相关文件路径都将与网络系统上的新工作目录相关

大写TXT可能是个问题。不,我只是将其改为大写,结果相同,跳过您的代码将无法编译。如果您想要有用的答案,请复制并粘贴您的真实代码。请显示您的代码中定义为nes
$report
并写入文件。Is
$report
该字符串
\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\u RECS\u PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT
?Re“我无法理解脚本为什么看不到该文件,您如何知道它没有看到该文件?请包括
$在错误消息中。大写的TXT可能是个问题。不,我只是将其改为大写,结果相同,跳过您的代码将无法编译。如果你想要有用的答案,请复制并粘贴你的真实代码。请显示定义
$report
并写入文件的代码部分。
$report
字符串
\\NYNAS\NYNDS\VOL\DATA\INVACCT\FUND\u RECS\u PFI\10001.ICNTL.20160603.PROD.GAAP.PFI\10001.ICNTL.20160602.20160603.OPR.GAAP.PROD.PFI.PRE.TXT
?关于“我不明白脚本为什么看不到文件”,您怎么知道它看不到文件?请包括
$