我有一个在Cygwin命令提示符下执行的Perl脚本。它调用批处理文件来创建和装载虚拟磁盘(VHD文件)。 安装后,Perl脚本尝试访问新磁盘但失败并发出信号表明找不到该目录。 我的脚本看起来像:
(...)
system ("create_mount_G_disk.bat");
# G:\ mounted
if (-d "G:") die "G: not found";
(...)
我想这里Perl在脚本启动时缓存磁盘列表,这就是为什么它很难访问新目录。有没有办法在运行时重新加载缓存?
我很乐意提供任何帮助! 谢谢:))
答案 0 :(得分:0)
在cygwin中,尝试/cygdrive/g
来引用G:
。您也可以更好地说G:/
而不仅仅是G:
。
答案 1 :(得分:0)
您没有向我们展示的代码中还有其他内容。这是我在Windows 10 Pro笔记本电脑上的Cygwin bash窗口中获得的内容:
$ perl -E 'say "yes" if -d "C:"'
$
这是预期的,因为C:
不是目录。
另一方面,
$ perl -E 'say "yes" if -d "C:\\"'
yes
$
和
$ perl -E 'say "yes" if -d "C:/"'
yes
$
此外,
if (-d "G:") die "G: not found";
这不是Perl,你的逻辑是颠倒过来的。
尝试:
unless (-d 'G:/') {
die 'G: not found';
}