ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

脚本语言选型指南:按场景选对编程语言

脚本语言选型指南:按场景选对编程语言 1. 先搞清楚你嘴里的“脚本”其实是好几种完全不同的东西今天想认真聊聊这个老生常谈但又总有人问的问题什么编程语言写脚本好之所以写了这么多年代码还愿意接这个选题是因为我见过太多人在选型上走了弯路——有人为了写一个批量重命名文件的脚本吭哧吭哧学了两周Java有人拿C写了八百行代码就为了定时给某个网页发个请求。不能说这些路子完全错但明显是用大炮打蚊子把自己和队友都折腾得够呛。先说个容易被忽略的事实“脚本”这个词在不同语境下指的东西可能完全不一样。你看网上那些热门搜索词就明白了——有shell脚本、PowerShell脚本、Python脚本、篡改猴用户脚本、JMeter录制出来的测试脚本、Unity里的C#脚本、IDEA里导出的数据库SQL脚本、Spark里的ETL脚本。这些“脚本”的共同点是“不需要显式编译、写起来快、跑起来也快、通常用来粘合各种程序和接口”。除此之外它们背后的语言生态、运行环境、应用场景几乎没有重叠。所以谁要是直接告诉你“学XX语言就对了”要么他没说清楚适用范围要么他自己也还没想明白。早期计算机领域确实有“脚本语言”和“编译型语言”的严格分界前者解释执行、动态类型、上手快后者需要编译链接、静态类型、性能强。但到了今天这个边界已经模糊得不能再模糊了。Python会先编译成字节码再解释执行JavaScript有强大的JITJust-In-Time编译器Go甚至可以用go run直接跑源码而C#社区也有各种脚本化方案。所以与其纠结“这个语言算不算脚本语言”不如反过来问三个更实际的问题我要写的这个脚本最终跑在什么环境里是Linux服务器、Windows桌面还是浏览器这个领域里现成的轮子库、框架、工具都基于什么语言半年之后我自己或者接手的人还能不能顺利把它跑起来把这三个问题想清楚选型基本就能定个八九不离十。接下来的篇幅我会按场景把常见需求一个个拆开每个场景给出我最推荐的选择和备选并解释“为什么是它”。2. 系统运维与文件批处理Shell、PowerShell 和 Python 的领地之争系统运维和日常文件处理是“脚本”这个词最经典的使用场景。你每天在终端里敲命令本质上就是在跟脚本打交道。这类需求量最大也最适合初学者入门因为它的反馈非常直接写一行跑一下立刻看到结果。2.1 Linux / macOS 下的首选Shell没什么好犹豫的如果你面对的是Linux服务器或者macOS终端Shell脚本几乎是绕不开的第一选择。它的优势不在于语言设计有多优雅而在于它是操作系统的“母语”。文件操作、进程管理、管道通信、定时任务这些事用Shell写是零成本你不需要额外安装任何运行时环境也不需要导入任何库。搜“shell脚本for循环”的人特别多说明很多人第一次接触脚本就是从循环遍历文件开始的。我举个最典型的批量重命名场景for f in *.txt; do mv $f ${f%.txt}.md done这段代码的意思是把当前目录下所有.txt文件批量改成.md后缀。${f%.txt}是Shell的参数扩展语法表示去掉变量f末尾的.txt再拼接.md。这里有几个容易翻车的细节$f必须加双引号否则文件名带空格时会被拆成多个参数表达式${f%.txt}里的%不是取模而是“从尾部删除最短匹配”如果文件名里有中文或特殊字符务必确保终端编码是UTF-8否则会出现乱码甚至操作失败。另外在Linux上运行Python脚本也很常见但很多人不知道的是Python脚本也可以像Shell命令一样直接执行。你只需要在Python文件第一行写上shebang再给它加执行权限#!/usr/bin/env python3 print(hello from python script)chmod x hello.py ./hello.py这样做的意义在于你可以把Python脚本当作一个普通命令放进管道里与各种Shell工具无缝协作。很多系统自动化任务其实都不是“只用Shell”或者“只用Python”而是“Shell负责外围调度Python负责复杂逻辑”两者是配合关系。2.2 Windows 平台PowerShell 比 bat 更值得投入Windows平台的情况稍微复杂一点。很多老教程会让人学bat批处理说实话如果不是改几个文件名、启动个程序这类特别简单的需求我不建议你在bat上花太多时间。bat的语法太古老变量、字符串处理、错误处理都极其难受稍微复杂一点的需求写出来就是天书。PowerShell才是现代Windows环境下的正确答案。它是微软基于.NET打造的脚本和命令行环境既能当终端交互工具又能写完整脚本。比如Windows上最常见的报错——“因为在此系统上禁止运行脚本”这个困扰了无数人的问题本质上就是PowerShell默认执行策略限制了脚本运行。解决办法也简单Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserRemoteSigned的含义是本地创建的脚本可以直接运行从网上下载的脚本必须有可信签名才允许执行。这是一个比较折中且安全的策略既不影响日常开发又防止了不明来源脚本的随意运行。再比如你在Windows上经常需要的“防锁屏”小工具用bat写出来是这样的echo off :loop rundll32 user32.dll,SetCursorPos timeout /t 60 goto loop但用PowerShell写会更清晰而且不会弹出黑色命令行窗口Add-Type -AssemblyName System.Windows.Forms while ($true) { [System.Windows.Forms.Cursor]::Position New-Object System.Drawing.Point([System.Windows.Forms.Cursor]::Position.X 1, [System.Windows.Forms.Cursor]::Position.Y 1) Start-Sleep -Seconds 30 }这段脚本每30秒把鼠标指针往右移动一像素用来防止电脑自动锁屏做演示或长时间跑任务时很好用。PowerShell的优势在这里体现得淋漓尽致它可以调用.NET类库能操作Windows API还能和COM组件交互几乎能干任何Windows桌面能干的活。PowerShell开机自启脚本也是个常被问到的需求常见做法有两种一种是把脚本放快捷方式到shell:startup文件夹另一种是用“任务计划程序”创建开机触发的任务。我推荐后者因为它可以指定以管理员权限运行、可以设置延迟几秒启动、还可以配置失败重试。用命令行注册一个开机自启任务也很简单schtasks /Create /TN MyStartupScript /TR powershell -ExecutionPolicy Bypass -File C:\scripts\startup.ps1 /SC ONSTART /RL HIGHEST不过要提醒一句Windows脚本如果涉及修改系统设置、写注册表、模拟键鼠操作很容易被杀毒软件误报尤其是网上流传那些“重置软件评估期”的脚本虽然很多人搜但这类东西依赖注册表清理和许可证重置涉及商业软件许可合规问题而且经常被杀软直接拦截。劝你最好自己搞明白每一步在干什么不要图省事跑不明来源的脚本。2.3 跨平台场景Python 依然是万金油如果你维护的不是单一平台而是一批混合环境——比如几台CentOS服务器、几台Windows机器、还有若干macOS笔记本——那么Python会是性价比最高的选择。它的跨平台能力比Shell和PowerShell都强同一个脚本稍微改改路径就能在三个平台上跑。而且Python处理字符串、文件、网络这些任务的标准库非常完善写起来比Shell更顺手比PowerShell更通用。举个例子我在做设备老化测试自动化时经常需要控制多台设备执行定时重启、采集日志、检测网络状态。这类任务用纯Shell写代码会变得支离破碎用PowerShell写Linux上又跑不了。最后方案是外层定时任务用系统自带cron或任务计划程序核心检查逻辑用Python编写。这样既保证了环境兼容性也方便后续扩展Web上报、邮件告警等功能。3. Web 工具链、浏览器脚本与命令行工具Node.js 的主场如果你是个Web开发者每天跟npm、git、webpack这些打交道那么JavaScript通过Node.js运行时就是写脚本的第一选择。过去JavaScript只是浏览器里的语言但Node.js出现之后它把JavaScript带到了服务端和命令行也让Web开发者的脚本生态彻底爆发。3.1 开发者的日常用 Node.js 写构建脚本和工具链Web开发本质上有一大堆“重复但又有差异”的杂活批量重命名文件、读取JSON改配置、调用接口同步数据、生成路由表、清理构建产物……这些需求如果遇到一个已经装了Node.js的环境直接用node跑一个.js文件是最省事的。而且Node.js生态里有庞大的npm包库几乎所有你想到的工具都有现成轮子。比如我需要批量处理图片尺寸时装个sharp库几行代码搞定const sharp require(sharp); const fs require(fs); const files fs.readdirSync(./images); for (const file of files) { if (!file.endsWith(.png)) continue; await sharp(./images/${file}) .resize(800, 600) .toFile(./resized/${file}); }这段代码用了异步处理处理几百张高清图片时不会卡死主线程。当然这只是示例实际工程建议用fs.promisesAPI配合Promise.all做并发控制。在Web工具链里还有一类很常见的报错搜索热词里那一串“无法将‘npm’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”就是活生生的例子。它不只是npm的问题git、mvn、cmake、甚至新出来的AI命令行工具claude都会有同样的报错。这个报错的本质不是脚本语言本身的问题而是你的环境变量Path没配置好或者你安装了某个工具但没有把可执行文件目录加入系统的可搜索路径。排查思路其实非常固定确认对应工具是否真的装好了比如输入node -v看有没有版本号找到这个可执行文件的完整路径Windows下一般是C:\Program Files\nodejs\npm.cmd之类把这个路径加进环境变量Path里重新打开终端。看起来简单但很多人被这个问题卡住一整天往往是因为装了多个语言版本管理器nvm-windows、nvm、scoop导致路径乱了。我的建议是尽量统一安装方式不要今天nvm装Node、明天官网装一遍、后天又用包管理器装一遍三个版本互相覆盖出现“无法识别”是迟早的事。3.2 篡改猴脚本浏览器的 JavaScript 小世界浏览器端的“脚本”是另一个经典场景也就是常说的“油猴脚本”“篡改猴脚本”。这类脚本跑在浏览器的扩展环境里本质就是JavaScript但借助GM_xmlhttpRequest、GM_addStyle等扩展API可以实现很多普通网页脚本做不到的事跨域请求、页面样式注入、DOM自动点击、信息提取、自动翻页。搜索词里的“via脚本”“open link in new tab脚本”也属于这一类。实现“所有链接默认在新标签页打开”这种功能只需几行代码// UserScript // name 新标签页打开链接 // namespace localhost // match *://*/* // grant none // /UserScript document.addEventListener(click, function (e) { const a e.target.closest(a); if (!a) return; e.preventDefault(); window.open(a.href, _blank); });浏览器脚本的优点是肉眼可见的效果反馈、几乎零门槛改完刷新就生效、不需要本地运行环境。缺点是每个网站的结构都可能变化脚本依赖选择器页面改版后就容易失效。所以在写这类脚本时尽量把对CSS类名的依赖收敛到一个函数里不要散落在各处页面改版后只需要改一处。3.3 Web 开发者的“组合拳”多个命令互相配合在实际开发中我经常把Node.js脚本、Shell命令、系统定时任务三者组合起来用。比如一个典型的日报数据推送流程先用Node.js脚本从数据中心拉数据、格式化内容再用Shell脚本调用外部推送接口最后用cron定时调度。这个过程中每个环节选自己最擅长的语言再用管道或临时文件串起来这是脚本开发最常见也最务实的形态。4. 爬虫、数据处理与 AI 时代为什么绕不开 Python如果随便在街上抓一个写脚本的程序员问“平时用哪个语言写脚本最多”十有八九会回答Python。论脚本场景的覆盖广度Python确实做到了通吃——小到文件重命名、Excel合并大到深度学习模型训练、大规模数据处理都有它的身影。这不是Python语言设计有多完美而是生态太强了你要的功能早有人写好库了。4.1 抢票类爬虫与网页自动化Python 生态几近完美热搜里关于“抢票脚本”“12306抢票脚本”“抢洗澡位置脚本”从来没断过这些需求的本质是网页自动化定时请求。Python在这个场景下的优势非常明显requests库让HTTP请求简单到极致几行代码就能模拟登录和查询Selenium和Playwright可以接管整个浏览器自动填充表单、点击按钮、处理验证码pandas清洗返回的JSON或HTML表格数据再输出成Excel或直接推送通知。一个简化版的定时抢票脚本长这样import time import requests def grab(session, target_url): resp session.post(target_url, json{slot: 18:00, num: 1}) if resp.status_code 200: print(抢到了, resp.json()) else: print(重试中状态码:, resp.status_code) session requests.Session() # 先登录拿到cookies省略 while True: grab(session, https://your-target-url.com/api/grab) time.sleep(0.5) # 注意控制频率必须提醒的是这类脚本如果针对公共服务系统或商业平台使用很可能违反用户协议。高频请求可能被封IP、封账号情节严重的还可能涉及法律风险。我自己写这类脚本只用于两件事一是学习HTTP原理二是自家有使用权的系统内部抢会议室。研究技术没问题但“定时高频请求”的尺度一定要把握好别为了抢个位置把自己账号搭进去。4.2 数据处理与 AI 训练Python 的统治路径搜索热词里专门有一类“数据处理 编程语言”“深度学习所需要的编程语言”这类问题的答案在当下非常清晰数据清洗用Python统计分析可以用R数据库内计算用SQL但深度学习的应用层几乎只认Python。PyTorch和TensorFlow这两个主流框架都优先提供Python接口这也是为什么AI工程师实际做的事情绝大部分是“写Python脚本训练和评估模型”。我再举一个日常办公中经常遇见的场景领导丢给你几个Excel表让你把不同sheet里的数据按某个字段合并再算几个统计指标。如果你用Excel手工操作每次至少半小时用Python配合pandas五分钟搞定import pandas as pd df1 pd.read_excel(sales_2024.xlsx, sheet_name华东) df2 pd.read_excel(sales_2024.xlsx, sheet_name华南) merged pd.concat([df1, df2], ignore_indexTrue) report merged.groupby(product)[amount].agg([sum, mean, count]) report.to_excel(report.xlsx)这种脚本哪怕公司里完全不懂编程的运营同事我也教过几次无非是先装Anaconda再照葫芦画瓢改文件名和列名。Python让人上瘾的地方就在这里两三行代码省掉大量重复劳动正反馈来得太快。4.3 Python 脚本跑不起来的那些坑环境变量、编码和虚拟环境Python是很好用但它“跑不起来”的坑也是最多的。搜热词里“linux运行python脚本”“python给另一个py脚本传递参数”都是从不同侧面反映了这类问题。我总结三个最常见的坑和处理方式。第一个坑python命令找不到。Windows上装完Python有时只装了解释器没把路径加进环境变量这时在cmd里输入python就会提示“无法识别”。处理方式是启动安装程序勾选“Add Python to PATH”或者手动把Python安装目录和Scripts子目录加进Path。第二个坑编码问题。Windows中文环境下Python脚本里如果写死了字符串从文件读取时经常遇到UnicodeDecodeError。解决办法是在读取文件时显式指定编码with open(data.txt, r, encodingutf-8) as f: data f.read()第三个坑依赖管理混乱。这是最要命的。很多人图方便用全局环境装包结果项目A需要requests 1.x项目B需要requests 2.x装来装去把环境搞坏了。我之前吃过一次大亏一台测试服务器上跑了四个不同时期的脚本依赖互相冲突最后不得不重装系统。所以现在只要新建项目第一件事就是建虚拟环境python -m venv .venv source .venv/bin/activate # Windows 下是 .venv\Scripts\activate pip install -r requirements.txt给另一个Python脚本传参也是个高频需求最简单的方式是用sys.argv# run.py import sys print(接收到的参数:, sys.argv) for arg in sys.argv[1:]: print(处理:, arg)命令行运行python run.py a b c即可。如果参数有复杂的键值对或需要帮助文档再升级到标准库的argparse。5. 自动化测试里的脚本语言大多由工具说了算自动化测试是“脚本”这个概念的另一个主战场但这里有个反直觉的事情测试脚本用什么语言往往不是你来选的而是工具锁定的。搜索结果里“jmeter录制https脚本”和“capl脚本”就是两个典型例子。JMeter原本是纯Java的压力测试工具早期给JMeter写脚本用的是它的GUI配置后来从3.0版本开始推荐用Groovy脚本语言做自定义断言和逻辑处理。Groovy是一种运行在JVM上的动态语言语法和Java高度兼容但更简洁。你如果非要用Java给JMeter写扩展不是不行但每次改逻辑都要重新编译打包效率差距一眼可见。工具选择了Groovy你就得跟着用Groovy。CAPLCAN Access Programming Language则是Vector公司为CAN/LIN总线仿真和测试专门设计的脚本语言。它的语法类似C语言主要运行在CANoe等工具里用来模拟ECU报文、编写测试用例、处理总线事件。没有接触过汽车电子的人可能都没听过这个语言但它在该领域几乎是必修课。写CAPL脚本的体验和写Python完全不同你需要严格按照工具的工程结构组织代码还需要对总线协议有深入理解。在常见的“设备老化测试全自动执行脚本”这种非标自动化项目里选型逻辑反而更接近普通业务脚本先看被测设备暴露了什么接口。如果设备提供串口或Modbus TCP接口我会直接用Python加最小依赖库完成开关机控制、数据采集、日志比对如果设备只有物理按键和屏幕那就得靠机械臂、继电器加图像识别这时脚本语言只是连接各硬件的“胶水”Python或Shell都行真正的工作量在硬件联调上。测试场景的脚本选型本质上是先弄清楚被测对象和测试工具再决定用什么语言写。以下表格总结了我在常见测试工具里的脚本语言选择测试工具/场景推荐脚本语言理由JMeter性能测试Groovy官方支持好能做复杂断言和数据处理CANoe总线仿真CAPL工具原生语言无法替代接口自动化测试Pythonrequests pytest 生态完善Web UI自动化Python Playwright跨浏览器兼容性好支持录制回放移动端App测试Python Appium基于WebDriver协议社区案例多嵌入式老化测试Python / Shell取决于设备的通信接口和运行环境6. 桌面自动化与游戏辅助类脚本易语言之外还有什么“易语言大漠脚本”这个搜索词在国内PC自动化圈子很有代表性。易语言是中文编程语言对不懂英语的人极其友好配上大漠插件提供的找图、找色、OCR、键鼠模拟能力确实能完成很多Windows端的自动化操作。这套方案盛行多年但现在再入坑我有几点建议必须先说清楚。先谈安全合规。游戏自动跑刀、挂机、弹道计算这类脚本属于典型的灰色地带。绝大多数在线游戏的服务条款都明确禁止使用自动脚本轻则封号重则因破坏计算机信息系统被追究责任。我不建议任何人为了游戏利益去碰这类东西哪怕你只是抱着学习目的写了个Demo配上线上游戏使用也一样风险极高。研究技术、练习代码没问题但请把“游戏”替换成“演示软件”或“自建网页项目”。再谈技术选型。易语言的问题在于生态相对封闭、代码可读性差、杀毒软件误报率高、64位兼容性历史包袱重。以现在的眼光看Windows桌面自动化有更现代的路子AutoHotkeyAHK轻量、语法简单特别适合做快捷键映射和窗口管理写几百行的办公自动化脚本非常顺手Python pyautogui pywinautopyautogui负责模拟全局键鼠pywinauto负责Windows原生控件的精准定位两者结合能做比较稳定的桌面GUI自动化Python opencv图像识别当目标界面没有暴露任何UI控件信息时靠找图找色依然能实现但稳定性取决于界面变化频率。我写过一个自动操作某个老旧ERP系统的脚本目标软件没有API、没有数据库直连权限、界面控件还是自绘的标准UI自动化框架完全拿它没办法。最后方案是OpenCV模板匹配定位按钮图标pyautogui发送鼠标点击再用pytesseract识别弹出的工号输入框里的数字整个过程像极了拼乐高虽然看起来不太优雅但在封闭生态下确实能解决问题。这类脚本的教训是先穷尽目标软件自身的能力快捷键、导入导出接口、命令行参数再考虑上模拟操作这样脚本对界面改版的容忍度会高很多。7. 2025 年重新审视Go / Rust / Dart 也来分一杯羹聊到这里最稳妥的脚本选型答案已经浮出水面——但如果你关注编程语言排行榜会发现最近几年还有几个新变量正在切入脚本领域。编程语言排行榜和PYPL排行上Python和JavaScript基本轮流坐前两席这没什么悬念但Go、Rust和Dart的位置变化值得想写脚本的人留意。7.1 Go编译型语言的“脚本化”体验Go原本不是典型的脚本语言它编译成单个二进制文件、静态类型、性能接近C。但go run命令的存在让它获得了类似脚本的即时运行体验。我为什么关注Go在脚本场景的渗透因为它解决了一个Python处理不了的痛点部署和分发。举个例子如果我要写一个小工具分发给测试组的同事让他们在Windows机器上执行某个自动化检查。用Python写的话我得让每个同事装Python解释器、安装依赖、处理各种版本冲突。用Go写的话一条交叉编译命令就能生成一个双击即用的exe文件不需要任何运行时GOOSwindows GOARCHamd64 go build -o checkup.exe main.go单说这条命令就足以让很多运维和测试场景对Go产生兴趣。此外Go的并发模型goroutine和channel在写爬虫、日志处理这类需要高并发的脚本时有天然优势。你如果只是图“Python三行代码搞定”的快感那Go确实没有必要但如果你写完脚本还要考虑长期运行、多并发、一键分发Go的价值就会非常突出。7.2 Rust当脚本逻辑复杂到需要性能上限Rust在开发者“最想使用”的排行上常年名列前茅但作为脚本语言它的门槛明显比Python和Shell高。Rust的编译期检查和所有权模型让很多习惯动态语言的人一开始抓狂。不过社区里有cargo-script这类工具可以让Rust代码像脚本一样直接运行底层是“变编译边执行”体验已经越来越接近脚本。我目前只在一种场景下会主动用Rust写“脚本”——处理几GB甚至几十GB的日志文件时Python跑一遍要几个小时但同样逻辑用Rust写的专用工具二十分钟跑完。这类性能敏感的工具脚本用Rust能显著降低耗时和服务器成本。但如果你遇到的日志只有几十MBPython足够完全不需要引入Rust编译链路的额外复杂度。7.3 Dart顺着 Flutter 走进脚本视野“dart编程语言pdf”这个搜索词挺有意思说明关注Dart的人不少。Dart最广为人知的身份是Flutter跨平台应用开发语言但Dart本身也是一种支持JIT和AOT的现代语言也可以直接运行脚本。它的语法对Java/C#开发者很友好而且自带完善的类型推断。我的判断是除非你已经在搞Flutter否则让Dart成为你的“主力脚本语言”意义不大。从技术生态看它做脚本能做的事Python和Node.js做得更好它做GUI应用能做的事Flutter确实强但那是应用开发范畴已经不是“写脚本”了。Dart可以作为你涉猎新语言时的一个好选择但不会替代Python或JavaScript在脚本领域的地位。8. 不纠结了按这三个标准闭眼选聊了这么多场景最后总结一下我实际选择脚本语言时的决策流程。每次接到一个新的“写个脚本”需求我都会按顺序问自己三个问题顺序固定、层层递进基本几分钟内就能拍板。第一问这个脚本最终运行在哪如果是Linux服务器默认Shell优先如果是Windows桌面PowerShell优先如果是浏览器网页那必然是JavaScript如果是别人的机器且对方不想装解释器直接上Go编译成单个可执行文件。运行环境决定一切先看有没有“现成的运行时”再看哪个语言能最小成本部署上去。第二问这个领域的轮子是用谁造的爬虫和数据处理就拥抱Python生态Web开发相关就拥抱Node.js生态汽车测试就得低头学CAPLJMeter里就得写Groovy。千万别逆着生态硬杠不然你写十行代码别人调一个库就完成了那种挫败感没必要体验。第三问这个脚本半年后还要不要跑如果它是一次性的怎么写快怎么来如果它是会长期运行的定时任务必须考虑依赖锁定、虚拟环境隔离、日志和异常处理如果团队其他成员也要维护那就得选大家最熟悉、社区资料最多的语言。我曾经写过一个临时用的Python脚本因为没建虚拟环境后来又依赖了额外的库结果入库的时候死活装不上最后只能重装解释器——问题出在当初没为“维护成本”留后路。再附一个随手就能抄作业的速查表你的需求场景首选语言备选Linux/Unix 系统管理ShellbashPythonWindows 系统管理PowerShellPython / AutoHotkey批量改文件名、压缩解压Python / ShellPowerShell爬虫/网页自动化PythonNode.js浏览器页面增强JavaScript篡改猴无Web 构建与工具链脚本Node.jsPython数据处理与报表PythonR / SQL深度学习/AI 模型脚本Python无定时任务调度Shell crontab / 任务计划程序PythonJMeter 自定义断言Groovy无CAN/CANoe 总线测试CAPL无Windows 桌面 GUI 自动化Python pywinautoAutoHotkey单文件分发的小工具GoRust高性能日志处理RustGo / Python我个人的体会是与其纠结“什么编程语言写脚本好”不如先把Python学到能干活的程度——它能覆盖大部分场景而且社区资源最丰富。然后根据你日常面对的环境Windows/Linux/浏览器/测试工具再去补一个领域专用的脚本语言。真正的高手不是精通十种语言而是每种语言都在最合适的位置上干活。你手里的脚本需求跑在什么环境里答案往往就在那里等着你。
返回列表