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

tauri项目绕开plugin-shell直接调用可执行文件并携带任意参数

tauri项目的plugin-shell插件的要求太多了,用起来实在是不顺手,要求参数要求位置等,不行不行,客户要求可以在前端输入任意命令行参数并执行,哪怕是rm -rf都要无条件执行,好好好,满足你。

我们直接绕开 plugin-shell 插件,不使用它了,直接使用系统内置的功能,还能减小包体积呢,真是一举两得

use std::process::Command;

然后写一个command提供给前端调用,传入一个字符串参数即可:

#[tauri::command]
pub fn run_command(command: String) -> Result<String, String> {let output = if cfg!(target_os = "windows") {Command::new("cmd").args(&["/C", &command]).output().unwrap()} else {Command::new("sh").arg("-c").arg(&command).output().unwrap()};if output.status.success() {Ok(String::from_utf8_lossy(&output.stdout).to_string())} else {Err(String::from_utf8_lossy(&output.stderr).to_string())}
}

这里唯一要做的就是要在前端找到可执行文件的绝对路径位置,然后把参数拼好,再执行就可以了,这里我先写了一个绝对路径,测试也是没问题的,所以你要先自己通过程序拿到可执行文件的绝对路径,然后就可以了

// run help
const runHelp = async () => {const command = await invoke('run_command', {command: '/Users/song/Project/my/TauriMan/src-tauri/bin/fnm --version',})console.log('run_command------', command)
}

执行结果:

http://www.xdnf.cn/news/10783.html

相关文章:

  • 【深度学习】大模型MCP工作流原理介绍、编写MCP
  • 谷歌地图2022高清卫星地图手机版v10.38.2 安卓版 - 前端工具导航
  • 小白的进阶之路系列之十一----人工智能从初步到精通pytorch综合运用的讲解第四部分
  • Franka科研新力量——基于异构预训练Transformer的扩展研究
  • 智能氮气柜的发展历程和前景展望
  • 从基础原理到Nginx实战应用
  • 架构设计的目标:高内聚、低耦合的本质
  • Pointer Network
  • FreeRTOS,其发展历程详细时间线、由来、历史背景
  • STM32学习之WWDG(原理+实操)
  • Go基础|map入门
  • 2025 Java面试大全技术文章(面试题1)
  • ABP-Book Store Application中文讲解 - Part 6: Authors: Domain Layer
  • (三)动手学线性神经网络:从数学原理到代码实现
  • C++初识—面向对象
  • JavaScript async/await指南
  • 亚远景科技助力东风日产通过ASPICE CL2评估
  • 【数据中心设计】
  • Vehicle HAL(3)--VehicleHalManager 分析
  • 【2025年B卷】OD-100分-斗地主之顺子
  • OD 算法题 B卷【跳格子2】
  • MTK的Download agent是什么下载程序?
  • 网络编程(计算机网络基础)
  • MyBatis 的动态 SQL
  • vSOME/IP与ETAS DSOME/IP通信的问题解决方案
  • malloc 内存分配机制:brk 与 mmap
  • MATLAB实战:四旋翼姿态控制仿真方案
  • AcWing 843:n-皇后问题 ← dfs
  • day45 python预训练模型
  • 机器学习——主成分分析(PCA)