我想在批处理文件中包装一个Perl单行程序.对于(平凡的)示例,在Unix shell中,我可以引用如下命令:
perl -e 'print localtime() . "\n"'
但DOS使用这个有用的错误消息扼杀了它:
在-e第1行的EOF之前的任何地方都找不到字符串终结符"'".
在.bat文件中执行此操作的最佳方法是什么?
对于Windows上的Perl内容,我尝试尽可能多地使用广义引用,因此我不会因为牙签综合征而感到厌恶.我保存了DOS所需内容的引号:
perl -e "print scalar localtime() . qq(\n)"
如果您只需要在打印结束时使用换行符,您可以让-l
开关为您执行此操作:
perl -le "print scalar localtime()"
有关交换机可以执行的其他很酷的事情,请参阅perlrun文档.
在Windows的"DOS提示符"(cmd.exe)中,您需要使用双引号而不是单引号.对于引用的Perl代码,Perl为您提供了很多选择.三是:
perl -e "print localtime() . qq(\n)" perl -e "print localtime() . $/" perl -le "print ''.localtime()"
如果您有Perl 5.10或更新版本:
perl -E "say scalar localtime()"
感谢JF Sebastian的评论.