当前位置: 首页 > news >正文

bat调用Perl脚本接收不到参数

perl -d checkLog.pl --logfile=E:\temp4\test.log --batch-name="Test-log"这样写在BAT文件里肯定能接收到参数

checkLog.pl --logfile=E:\temp4\test.log --batch-name="Test-log" 但当这样写时,就不一定能接受到参数了!
现象:在Win11系统上还好,只需要在*.pl文件 - 右键’属性’ - 打开方式 - 选择perl.exe 就能正常调用
图[1]
图片aaa描述

但在Windows10 / Windows Service 2022 DataCenter上pl脚本能调起来,但是总是提示没有传参数,后来发现少东西
如下图,是把Perl环境完全删除时,再次打开*.pl程序时,提示选择打开方式,最后少了%*
图[2]

在这里插入图片描述
下面说具体的操作方法
方案一:在CMD里

assoc .pl=PerlScript
ftype PerlScript=C:\Perl\strawberry5.36\perl\bin\perl.exe" "%1" %

然后在*.pl文件 - 右键’属性’ - 打开方式 - 选择perl.exe (这一步不可缺少,不然BAT调用pl程序时会出弹窗,让你选择关联程序)

方案二
1.先操作:在*.pl文件 - 右键’属性’ - 打开方式 - 选择perl.exe
2.打开注册表找到以下位置
HKEY_CLASSES_ROOT\Applications\perl.exe\shell\open\command
"C:\Perl\strawberry5.36\perl\bin\perl.exe" "%1" %*
在这里插入图片描述
如果’数据’里的缺少%* 就需要手动加上(它的作用是接收后面所有参数)


在这里插入图片描述
是不是有点晕,以下根据上图做下解释
①的位置’UserChoice’ - ProgId=pl_auto_file决定了通过那个程序打开.pl脚本,LZ这里是’pl_auto_file’,对应的是③这个地方就缺少了%*,所以会造成接收不到.pl后面的参数,需要自己手动加!
①的位置也可能是’PerlScript’,这时就得去找②位置,看里面的值是否完整,例如"C:\Perl\strawberry5.36\perl\bin\perl.exe" "%1" %这种形式


http://www.mrgr.cn/news/69002.html

相关文章:

  • python爬虫(二)爬取国家博物馆的信息
  • 【安全科普】NUMA防火墙诞生记
  • 【星海随笔】ZooKeeper-Mesos
  • 从 Rust 官方文档理解 Ownership
  • 生成式GPT商品推荐:精准满足用户需求
  • 前端垂直居中的多种实现方式及应用分析
  • 让SQL更优雅!深入浅出【公用表表达式(CTE)】语法及实战案例
  • ONLYOFFICE 8.2 版:助力自动化办公的佼佼者
  • Python代码主要实现了一个基于Transformer和LSTM的混合模型,用于对给定数据集进行二分类任务
  • 冬季游泳比赛的最佳选择:气膜游泳馆—轻空间
  • 云原生安全解决方案NeuVector 5.X部署实践
  • 接外包开发究竟要掌握哪些技能?
  • IDEA代码没问题但是编译的时候报错
  • AI大模型如何重塑软件开发流程
  • Unet++改进6:添加CoordAtt注意力机制
  • 前端开发的未来:2024 年您应该关注的 6 大趋势
  • 【已解决】Windows11 24H2 无法访问无密码SMB共享怎么办;
  • 设置允许多用户远程登录 Windows 云服务器
  • 研发LLM模型,如何用数值表示人类自然语言?
  • Python常用脚本集锦
  • 【项目开发】如何理解软件架构中“弹性”一词
  • 如何构建多平台nuget包
  • 操作系统复习指南:知识点整理与习题解析
  • 李六-1,2
  • Transformer 中的残差连接:为什么在正则化前加入残差?
  • 关于我的编程语言——C/C++——第七篇(深入4)