这是基于MoarVM版本2019.03构建的Rakudo Star版本2019.03.1实施Perl 6.d。
Windows 10
实施例:
1)错误:
shell 'mysqldump -uroot -ppassword asppmr > D:\b\29-09-2019 19-45-18\asppmr.sql';
mysqldump:[警告]在命令行界面上使用密码可能不安全。 mysqldump:找不到表:“ 19-45-18 \ asppmr.sql”Proc.new(in => IO :: Pipe,out => IO :: Pipe,err => IO :: Pipe,退出代码=>6,信号=> 0,pid => 11928,命令=>(“ mysqldump -uroot -ppasswordasppmr> D:\ b \ 29-09-2019 19-45-18 \ asppmr.sql“,))
2)错误:
shell 'mysqldump -uroot -ppassword asppmr > "D:\b\29-09-2019 19-45-18\asppmr.sql"';
Синтаксическаяошибкавименифайла,именипапкиилиметкетома。Proc.new(in => IO :: Pipe,out => IO :: Pipe,err => IO :: Pipe,exitcode => 1,信号=> 0,pid => 19372,命令=>(“ mysqldump- uroot -ppassword asppmr> \“ D:\ b \ 29-09-2019 19-45-18 \ asppmr.sql \”“,))]
3)没有错误(文件路径中没有空格时:)>
so shell 'mysqldump -uroot -ppassword asppmr > D:\b\asppmr.sql';
TRUE
4)cmd.exe没有错误:
mysqldump -uroot -ppassword asppmr > "D:\b\29-09-2019 19-45-18\asppmr.sql"
5)perl 6没有错误:
my $r = q:x/mysqldump -uroot -ppassword asppmr/; spurt('D:\b\27-09-2019 18-29-12\asppmr.sql', $r);
6)perl 6没有错误(如果文件路径中没有引号):
print 'mysql dump: '; my $d = run 'C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump', '-uroot', '-ppassword', 'asppmr', '--result-file=D:\b\29-09-2019 19-45-18\asppmr.sql', :err; $d.err.slurp(:close); # skip show errors say $d.exitcode == 0 ?? 'success!' !! 'error!';
mysql dump:成功!
这是在实现Perl 6.d的MoarVM版本2019.03上构建的Rakudo Star版本2019.03.1。 Windows 10示例:1)错误:shell'mysqldump -uroot -ppassword asppmr> D:\ b \ 29-09-2019 19-45-18 \ ...
您可以尝试按照^
中的建议,使用How to escape space in file path in windows run?来转义文件路径中的空格