Windows 我的perl脚本没有';我看不到txt文件
我的Perl程序创建了这个文件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
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
?关于“我不明白脚本为什么看不到文件”,您怎么知道它看不到文件?请包括$错误消息中的代码>。