需要使用正则表达式或其他方法将UNIX路径转换为DOS路径。
我有
C:/My Document/Photo.gif
需要
C:\My Document\Photo.gif
答案 0 :(得分:8)
#!/usr/bin/perl
use strict; use warnings;
use File::Spec::Win32;
print File::Spec::Win32->canonpath('C:/My Document/Photo.gif'), "\n";
答案 1 :(得分:4)
这是正则表达式
s/\//\\/g
答案 2 :(得分:2)
首先,除非您要通过cmd.exe
调用某些内容,否则通常不需要执行该映射; Windows API对文件名中的斜杠而不是反斜杠非常满意(但是cmd.exe
坚持斜杠启动一个选项)。
然后,你问题的直接答案可能是:
my $file = "C:/My Documents/Photo.gif";
$file =~ s{/}{\\}g;
print "$file\n";
答案 3 :(得分:1)
只需将/
替换为\
即可。虽然我必须指出你可以在Windows中使用正斜杠。
答案 4 :(得分:-1)
有点多余,但你可以使用tr而不是正则表达式:
tr!\\!/!;