use*_*627 0 windows perl copy file path
这是我非常简单的代码,由于某些原因,我无法弄清楚它无法正常工作.
#!/usr/bin/perl
use File::Copy;
$old = "car_lexusisf_gray_30inclination_000azimuth.png";
$new = "C:\Users\Lenovo\Documents\mycomp\simulation\cars\zzzorganizedbyviews\00inclination_000azimuth\lexuscopy.png";
copy ($old, $new) or die "File cannot be copied.";
Run Code Online (Sandbox Code Playgroud)
我收到无法复制文件的错误.
我知道复制命令没有任何问题,因为如果我将$ new的值设置为没有路径的简单值,它就可以工作.但是,正如我上面写的那样,路径的表现有什么不对?如果我复制并将其复制到Windows资源管理器的地址栏中,它会很好地到达该文件夹.
提示:在执行复制之前打印出路径.你会看到这个:
C:SERSenovodocumentsmycompsimulationrszzzorganizedbyviewsinclination_000azimuthexuscopy.png
Run Code Online (Sandbox Code Playgroud)
不是我们想要的.反斜杠是Perl中的转义字符,需要自行转义.如果反斜杠序列没有形成有效的转义,那么它将被忽略.使用转义反斜杠,您的字符串将如下所示:
"C:\\Users\\Lenovo\\Documents\\mycomp\\simulation\\cars\\zzzorganizedbyviews\\00inclination_000azimuth\\lexuscopy.png";
Run Code Online (Sandbox Code Playgroud)
或者只是使用正斜杠 - 在大多数情况下,Unix风格的路径也可以在Windows上正常工作.
以下是您不小心使用的转义列表:
\U 其余部分是大写的\L 小其余的\ca是一个控制字符(ASCII 1,标题的开头)\00 是一个八进制字符,这里是NUL字节\l 小写下一个字符.| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |