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