ARTICLE DETAIL

资讯详情

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

脚本自动化入门:从环境配置到实战备份脚本编写指南

脚本自动化入门:从环境配置到实战备份脚本编写指南 1. 脚本从零到一的自动化思维构建如果你在电脑前重复着每天都要做十几次的复制、粘贴、重命名操作或者被“无法将‘xxx’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”这类错误提示搞得焦头烂额那么你正站在一扇名为“脚本”的大门前。脚本不是程序员的专属魔法它是任何希望从重复劳动中解放出来的人的瑞士军刀。简单来说脚本就是一系列按顺序执行的命令的集合它把需要你手动输入十次的指令变成双击一个文件就能自动完成的事。无论是整理杂乱无章的文件、批量下载网络资源还是自动登录网站签到脚本都能帮你搞定。这篇文章就是带你绕过那些晦涩的术语直接上手用最接地气的方式理解脚本的核心并亲手写出你的第一个能真正干活的脚本。从网络上的热门搜索词就能看出大家对脚本的两大核心诉求解决问题和自动化。像“抢票脚本”、“自动刷主线”、“金币脚本”指向的是利用脚本完成特定任务而“shell脚本入门”、“for循环”、“传递参数”则是实现这些自动化所需要掌握的基本功。同时大量的“无法识别...名称”错误又暴露了新手在环境配置和基础概念上的普遍困惑。我们将从这些真实的需求和痛点出发剥开脚本神秘的外衣。2. 脚本世界地图选择你的第一把武器面对“脚本”这个词新手最容易懵的一点是我到底该学哪种脚本是 Windows 里黑乎乎的批处理还是 Linux 终端里强大的 Shell或是似乎无所不能的 Python别急这就像选工具得看你要修什么。2.1 主流脚本语言速览与选型建议Windows 批处理 (.bat/.cmd)这是 Windows 系统的“原生母语”。它的命令直接源于 DOS 时代语法简单直白非常适合在 Windows 环境下进行文件管理、启动程序等基础自动化。适合场景纯 Windows 环境下的文件批量操作复制、移动、重命名、简单的软件安装后配置、定时执行特定任务。优点无需安装任何额外环境系统原生支持学习曲线极低。缺点功能相对有限处理复杂逻辑如网页内容解析、复杂字符串处理非常吃力且跨平台能力几乎为零。新手建议如果你的所有工作都局限于 Windows 桌面且任务非常基础例如每天开机自动将“下载”文件夹里的图片按日期归档从批处理入手能最快获得成就感。Shell 脚本 (Bash, 常见于 Linux/macOS 或 Windows 的 WSL/Git Bash)这是类 Unix 系统包括 Linux 和 macOS的自动化基石。Shell 脚本的能力远超批处理它能调用海量的系统命令和工具进行文本处理、进程管理、系统监控等。适合场景服务器运维一键部署、日志分析、备份、开发环境搭建如各种“一键安装脚本”、处理文本和文件用grep,awk,sed等工具效率极高。优点功能极其强大是系统管理和开发的核心技能有海量的现有脚本和社区支持。缺点语法诡异特别是条件判断和循环错误提示不友好在纯 Windows 桌面环境使用需要额外环境如 Git Bash。新手建议如果你涉及软件开发、服务器或者使用 macOS学习 Shell 脚本是一项高回报投资。从简单的文件遍历和命令组合开始。Python 脚本 (.py)Python 是目前最流行的通用脚本语言之一。它严格来说是一门全功能的编程语言但因其语法简洁、库生态丰富被广泛用于写脚本。适合场景几乎一切特别是需要网络交互网页抓取、API 调用、数据处理Excel、CSV 操作、图像处理、跨平台复杂任务。优点语法清晰易读库生态庞大“轮子”多跨平台性极佳从简单脚本到大型项目都能胜任。缺点需要安装 Python 解释器虽然安装简单但仍是额外步骤。对于极简单的系统级文件操作可能不如 Shell 脚本直接。新手建议如果你不确定方向或者任务可能变得复杂直接选择 Python。它的学习路径平滑社区资源丰富是“脚本”与“编程”之间最好的桥梁。网络上很多“抢票脚本”、“自动化脚本”都是用 Python 写的。其他特定领域脚本JavaScript/Node.js主要用于网页自动化Puppeteer和前端构建流程。PowerShellWindows 上更现代、更强大的脚本语言可以深度管理 Windows 系统但语法对新手稍复杂。Lua常见于游戏模组和嵌入式领域如一些游戏包括“冒险岛”怀旧服的自动化脚本。选择心法从你的日常痛点出发而不是从语言本身出发。问自己我最想自动化的那个烦人任务是什么它在什么系统上运行这个任务更接近“操作文件”还是“处理网页数据”答案会自然指引你选择工具。2.2 环境搭建避坑指南解决“无法识别”错误搜索热词里一堆“无法将‘xxx’项识别为...”的错误其根源九成在于系统路径PATH问题。当你输入一个命令如python,pip,npm时系统会去 PATH 环境变量所列出的目录里寻找这个可执行文件。如果没找到就会报这个错。Windows 下添加 Python 到 PATH以 Python 为例安装时勾选安装 Python 时务必勾选 “Add Python X.X to PATH”。这是最简单的方法但很多人会漏掉。手动添加如果已安装但未勾选右键点击“此电脑” - “属性” - “高级系统设置” - “环境变量”。在“系统变量”或“用户变量”中找到Path变量双击编辑。点击“新建”添加你的 Python 安装路径如C:\Users\你的用户名\AppData\Local\Programs\Python\Python311和它的Scripts文件夹路径如C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\Scripts。Scripts文件夹里通常有pip.exe。关键步骤完成添加后必须关闭当前所有的命令行窗口CMD 或 PowerShell再重新打开一个新的。环境变量只在终端启动时加载不重启终端修改不生效。Linux/macOS 下的 PATH 问题通常通过包管理器如apt,yum,brew安装的软件会自动配置 PATH。如果遇到问题通常是软件未安装或需要source ~/.bashrc或~/.zshrc来重新加载配置。通用排查命令where python(Windows) 或which python(Linux/macOS)查看系统找到的python命令具体在哪个位置。echo $PATH(Linux/macOS/PowerShell) 或echo %PATH%(Windows CMD)打印出当前的 PATH 变量检查你需要的路径是否在其中。3. 脚本核心语法精讲像搭积木一样写逻辑无论选择哪种语言脚本的核心逻辑结构是相通的顺序执行、条件判断、循环处理。理解了这三块积木你就能组合出大部分自动化流程。3.1 变量数据的临时储物柜变量用来存储信息比如一个文件名、一个网址、或者一个计数器。Shell (Bash):name我的文档 # 定义变量等号两边不能有空格 echo $name # 使用变量需要加$符号 count10注意Shell 中变量赋值等号两边不能有空格这是一个非常常见的错误源。引用变量时$var和${var}在大多数情况下等效后者在变量名边界模糊时更安全如${file}_backup.txt。Windows 批处理:set name我的文档 # 使用set命令定义 echo %name% # 使用变量用百分号包裹 set /a count10 # /a 表示进行算术运算注意set命令定义的变量是“环境变量”在当前 CMD 会话中有效。等号两边可以有空格但值如果包含空格或特殊字符建议用引号包裹如set myfilemy document.txt。Python:name 我的文档 # 定义变量等号两边可以有空格更符合阅读习惯 print(name) # 使用变量直接写名字 count 10Python 的变量使用最为直观无需特殊符号修饰。3.2 条件判断让脚本学会“思考”根据不同的情况执行不同的操作。Shell (Bash) - 检查文件是否存在:if [ -f /path/to/myfile.txt ]; then echo 文件存在开始处理... # 在这里执行处理命令 else echo 文件不存在跳过。 fi # if 语句的结束标记[ -f ... ]是一个测试命令-f检查是否为普通文件。Shell 的条件判断语法非常严格方括号内两侧必须有空格。Windows 批处理 - 检查文件是否存在:if exist C:\path\to\myfile.txt ( echo 文件存在开始处理... rem 在这里执行处理命令 ) else ( echo 文件不存在跳过。 )批处理使用if exist来检查文件或目录。括号()用于包裹要执行的命令块。Python - 检查文件是否存在:import os if os.path.isfile(/path/to/myfile.txt): print(文件存在开始处理...) # 在这里执行处理代码 else: print(文件不存在跳过。)Python 需要先导入os模块来使用路径相关的功能。逻辑清晰接近自然语言。3.3 循环不知疲倦的重复劳工用来重复执行某段代码直到满足某个条件。Shell (Bash) - 遍历当前目录所有.txt文件:for file in *.txt; do echo 正在处理文件: $file # 对每个$file进行操作例如重命名 mv $file ${file%.txt}.bak.txt # 将.txt后缀改为.bak.txt donefor ... in ...; do ... done是固定结构。*.txt是通配符表示所有 .txt 文件。${file%.txt}是参数扩展表示移除$file变量末尾的.txt。Windows 批处理 - 遍历当前目录所有.txt文件:for %%f in (*.txt) do ( echo 正在处理文件: %%f rem 对每个文件进行操作 ren %%f %%~nf.bak.txt # %%~nf 表示获取文件名不含扩展名 )批处理中在命令行直接写for循环用%f但在批处理脚本文件(.bat)中必须写成%%f。%%~nf是for命令提供的变量扩展用于提取不带扩展名的文件名。Python - 遍历当前目录所有.txt文件:import os import glob for file_path in glob.glob(*.txt): print(f正在处理文件: {file_path}) # 对每个file_path进行操作 base_name os.path.splitext(file_path)[0] # 获取不带扩展名的文件名 new_name f{base_name}.bak.txt os.rename(file_path, new_name)Python 使用glob模块进行文件匹配os模块进行文件操作。代码结构清晰功能强大。循环的心得写循环时第一件事是确保你的操作在循环体内不会意外地改变循环条件特别是在遍历文件列表时进行删除或重命名操作需要格外小心。一个稳妥的做法是先将要处理的文件列表收集到一个数组或变量里然后再遍历这个列表进行操作。4. 实战构建你的第一个实用脚本光说不练假把式。我们来完成一个极具实用价值的任务自动备份指定目录下今天被修改过的所有文件。这个脚本综合运用了变量、条件判断和循环。4.1 需求分析与设计目标每天下班前运行一次将“工作文档”文件夹里当天修改过的文件自动复制到“今日备份”文件夹并按原始目录结构存放。核心逻辑定义源目录和目标备份目录。在目标目录下创建一个以当前日期命名的子文件夹如backup_20231027。遍历源目录下的所有文件。判断文件的“最后修改时间”是否是今天。如果是则复制该文件到备份目录并保持其相对路径。我们将分别用 Shell (Bash) 和 Python 实现你可以对比感受两者的风格。4.2 Shell (Bash) 脚本实现假设我们在 Linux/macOS 或 Windows 的 Git Bash 环境下操作。#!/bin/bash # 声明这是一个bash脚本 # 1. 定义变量 SOURCE_DIR/home/user/工作文档 # 你的源目录 BACKUP_BASE/home/user/备份 # 备份根目录 TODAY$(date %Y%m%d) # 获取当前日期格式如20231027 BACKUP_DIR${BACKUP_BASE}/backup_${TODAY} # 今日备份目录 # 2. 创建今日备份目录 echo 准备创建备份目录: $BACKUP_DIR mkdir -p $BACKUP_DIR if [ $? -ne 0 ]; then echo 错误无法创建备份目录 exit 1 fi # 3. 使用 find 命令查找今天修改的文件并进行复制 echo 开始查找并备份今天修改的文件... # find 命令解释 # $SOURCE_DIR - 查找的起始路径 # -type f - 只查找文件不包括目录 # -mtime 0 - 修改时间在24小时之内即“今天” # -print0 - 输出以null字符分隔安全处理含空格/换行符的文件名 # | - 管道将find的输出传递给后面的命令 # while IFS read -r -d file; do - 循环读取find输出的每个文件名 find $SOURCE_DIR -type f -mtime 0 -print0 | while IFS read -r -d file; do # 计算文件相对于源目录的相对路径 rel_path${file#$SOURCE_DIR/} # 移除源目录前缀 # 构建目标文件完整路径 dest_file${BACKUP_DIR}/${rel_path} # 创建目标文件所需的目录 mkdir -p $(dirname $dest_file) # dirname 获取文件所在目录路径 # 复制文件并保留文件属性-p cp -p $file $dest_file if [ $? -eq 0 ]; then echo 已备份: $rel_path else echo 备份失败: $rel_path fi done echo 备份完成文件已保存至: $BACKUP_DIR脚本要点解析#!/bin/bash称为 shebang告诉系统用哪个解释器来执行此脚本。$(date %Y%m%d)是命令替换将date命令的输出赋值给变量TODAY。mkdir -p中的-p参数确保创建多级目录如果父目录不存在也会一并创建。$?是一个特殊变量代表上一个命令的退出状态。0 表示成功非 0 表示失败。find ... -print0和while IFS read -r -d 是处理包含特殊字符文件名的黄金搭档非常稳健。${file#$SOURCE_DIR/}是参数扩展从$file变量开头移除$SOURCE_DIR/这个模式。4.3 Python 脚本实现Python 的实现更注重可读性和跨平台性。#!/usr/bin/env python3 # 声明使用python3解释器 import os import shutil from datetime import datetime, timedelta import sys def backup_modified_today(source_dir, backup_base_dir): 备份源目录中今天修改过的文件。 参数: source_dir: 要备份的源目录路径 backup_base_dir: 备份文件存放的根目录 # 1. 准备路径 today_str datetime.now().strftime(%Y%m%d) backup_dir os.path.join(backup_base_dir, fbackup_{today_str}) # 2. 创建备份目录 print(f准备创建备份目录: {backup_dir}) try: os.makedirs(backup_dir, exist_okTrue) # exist_okTrue 表示目录已存在也不报错 except OSError as e: print(f错误无法创建备份目录 {backup_dir}。原因{e}, filesys.stderr) sys.exit(1) # 3. 计算“今天”的时间范围从今天00:00:00到现在 now datetime.now() today_start datetime(now.year, now.month, now.day) # 今天零点 backup_count 0 error_count 0 print(开始查找并备份今天修改的文件...) # 4. 使用 os.walk 遍历源目录 for root, dirs, files in os.walk(source_dir): for filename in files: source_file os.path.join(root, filename) # 5. 获取文件最后修改时间 try: mtime os.path.getmtime(source_file) # 获取时间戳 mtime_dt datetime.fromtimestamp(mtime) # 转换为datetime对象 except OSError as e: print(f警告无法获取文件信息 {source_file}跳过。原因{e}) continue # 6. 判断修改时间是否在今天范围内 if mtime_dt today_start: # 计算相对路径 rel_path os.path.relpath(source_file, source_dir) dest_file os.path.join(backup_dir, rel_path) # 7. 创建目标目录并复制文件 dest_dir os.path.dirname(dest_file) os.makedirs(dest_dir, exist_okTrue) try: shutil.copy2(source_file, dest_file) # copy2会尝试保留元数据 print(f已备份: {rel_path}) backup_count 1 except Exception as e: print(f备份失败: {rel_path}。原因{e}) error_count 1 # 8. 输出总结 print(\n *50) print(f备份完成) print(f备份目录: {backup_dir}) print(f成功备份文件数: {backup_count}) if error_count 0: print(f备份失败文件数: {error_count}) print(*50) if __name__ __main__: # 在这里修改你的源目录和备份目录 SOURCE /Users/yourname/工作文档 # 请替换为你的实际路径 BACKUP_BASE /Users/yourname/备份 # 请替换为你的实际路径 # 检查目录是否存在 if not os.path.isdir(SOURCE): print(f错误源目录不存在 {SOURCE}, filesys.stderr) sys.exit(1) # 执行备份函数 backup_modified_today(SOURCE, BACKUP_BASE)脚本要点解析os.makedirs(dir, exist_okTrue)是创建目录的安全方法即使目录已存在也不会报错。os.walk()是遍历目录树的强大工具它分别生成当前目录路径、子目录列表和文件列表。os.path.getmtime()获取文件的最后修改时间戳datetime.fromtimestamp()将其转换为可读的日期时间对象。os.path.relpath()用于计算相对路径这是保持目录结构的关键。shutil.copy2()比shutil.copy()更好因为它会尽可能保留文件的元数据如修改时间。if __name__ __main__:这是一个 Python 脚本的常见模式确保当这个文件被直接运行时下面的代码才会执行如果被其他文件导入则不会自动运行。这提高了脚本的模块化程度。如何运行将脚本保存为daily_backup.sh(Shell) 或daily_backup.py(Python)。打开终端或命令提示符/PowerShell导航到脚本所在目录。对于 Shell 脚本先赋予执行权限chmod x daily_backup.sh然后运行./daily_backup.sh。对于 Python 脚本直接运行python3 daily_backup.py。首次运行前务必修改脚本开头的SOURCE_DIR/SOURCE和BACKUP_BASE变量将其指向你电脑上的真实路径。5. 脚本调试与错误处理实战写脚本不可能一次成功。学会调试和错误处理是脚本能否从“玩具”变成“工具”的关键。5.1 常见错误与排查清单对照热词里的高频错误我们整理一个排查表错误现象可能原因排查步骤命令: 无法将“命令”项识别为...(Windows)1. 命令未安装。2. 命令未添加到 PATH 环境变量。3. 当前终端会话未加载新的 PATH。1. 检查命令是否已正确安装如python --version。2. 运行echo %PATH%查看 PATH 是否包含命令所在目录。3.关闭并重新打开终端这是最容易被忽略的一步。命令未找到(Linux/macOS)1. 命令未安装。2. 命令路径不在 PATH 中。3. 脚本没有执行权限。1. 使用which 命令名查找命令位置。2. 使用echo $PATH检查。3. 对脚本文件执行chmod x 脚本名.sh。脚本执行一闪而过/闪退1. 脚本中有错误导致立即退出。2. 在 Windows 中双击运行 .bat结束后自动关闭窗口。1.在终端中运行脚本这样错误信息会保留在终端里。2. 对于 .bat在脚本末尾加pause命令。或在文件资源管理器地址栏输入cmd然后回车再在打开的终端里运行脚本。文件操作失败无权限尝试写入或删除系统保护目录或没有权限的目录。1. 检查目标路径的权限Linux/macOS 用ls -lWindows 查看文件属性。2. 尝试以管理员/root权限运行非必要不推荐。3. 修改脚本将输出目录改为用户有权限的位置如家目录下。语法错误脚本语言语法错误如缺少引号、括号或关键字拼写错误。1. 仔细检查错误提示行附近的代码。2. 使用脚本编辑器的语法高亮功能。3. 对于 Shell可以用bash -n 脚本名.sh检查语法不执行。路径错误找不到文件使用了相对路径但脚本运行时的工作目录与预期不符。1.在脚本中使用绝对路径这是最稳妥的方式。2. 或者在脚本开头使用cd命令切换到确定的工作目录。3. 使用pwd(Linux) 或cd(Windows) 命令查看脚本运行时的当前目录。5.2 调试技巧让脚本“开口说话”调试的核心是增加可见性。在你怀疑有问题的地方让脚本告诉你它在做什么、变量是什么值。打印大法Print Debugging这是最简单粗暴也最有效的方法。在关键步骤前后插入打印语句。# Python 示例 print(f[DEBUG] 开始处理文件: {file_path}) # f-string 格式化清晰显示变量值 print(f[DEBUG] 文件修改时间是: {mtime_dt}) # ... 执行操作 ... print(f[DEBUG] 操作完成结果: {result})# Shell 示例 echo [DEBUG] 变量name的值是: $name echo [DEBUG] 当前目录是: $(pwd)使用[DEBUG]这样的前缀方便在输出中快速定位你的调试信息脚本稳定后可以统一删除或注释掉。使用set -x(Shell) 或pdb(Python) 进行追踪Shell: 在脚本开头加上set -x它会打印出脚本执行的每一行命令及其展开后的参数非常详细。调试完后改为set x关闭。Python: 在你想开始调试的地方插入import pdb; pdb.set_trace()运行脚本时会在此处进入交互式调试器可以逐行执行、查看变量。检查命令返回值在 Shell 中$?变量保存上一个命令的退出状态。重要的操作后可以检查它。cp important_file.txt backup/ if [ $? -ne 0 ]; then echo 错误复制文件失败 2 # 2 表示输出到标准错误流 exit 1 fi5.3 让你的脚本更健壮错误处理一个好的脚本应该能预见并妥善处理可能出现的错误而不是直接崩溃。Python 的 Try-Excepttry: with open(somefile.txt, r) as f: content f.read() except FileNotFoundError: print(文件不存在将创建新文件。) content except PermissionError: print(没有读取文件的权限。) sys.exit(1) except Exception as e: # 捕获其他所有未预料的错误 print(f发生未知错误: {e}) sys.exit(1)尽量捕获具体的异常类型如FileNotFoundError而不是笼统的Exception这样逻辑更清晰。Shell 的 Trap 和条件判断# 设置陷阱在脚本因任何原因退出时执行清理函数 cleanup() { echo 脚本被中断执行清理... rm -f /tmp/temp_file_$$ # $$ 是当前进程ID用于生成唯一临时文件名 } trap cleanup EXIT INT TERM # 在退出、被中断、被终止时触发cleanup # 对于可能失败的命令进行判断 if ! mkdir -p $BACKUP_DIR; then echo 创建目录失败 2 exit 1 fitrap命令用于捕获信号EXIT是脚本正常退出INT是用户按 CtrlCTERM是收到终止信号。6. 从脚本到自动化进阶思路与安全提醒当你掌握了基础脚本编写后就可以思考如何让它更好地融入你的工作流实现真正的自动化。6.1 定时执行让脚本在后台默默工作脚本写好了总不能每天手动去点。系统级的任务调度器可以帮你。Linux/macOS: CronCron 是类 Unix 系统上的经典任务调度器。使用crontab -e命令编辑当前用户的 cron 任务。# 每天下午6点30分执行备份脚本并将输出日志追加到指定文件 30 18 * * * /home/user/scripts/daily_backup.sh /home/user/backup.log 2130 18 * * *表示时间分钟(30) 小时(18) 日 月 星期。*代表“每”。 /home/user/backup.log 21将脚本的标准输出和标准错误都重定向追加到日志文件方便查看运行结果和错误。Windows: 任务计划程序图形化界面操作直观。可以设置触发器如每天、每周、开机时、操作启动程序填入你的脚本路径、条件等。跨平台方案: Systemd Timer (Linux) / Launchd (macOS) / Python 的 schedule 库对于更复杂的调度需求可以考虑这些方案。Python 的schedule库甚至可以让脚本自己管理定时任务适合需要长时间运行的后台服务型脚本。6.2 参数化让一个脚本适应多种场景硬编码路径的脚本灵活性差。通过接收命令行参数可以让脚本更通用。Shell 脚本参数使用$1,$2,$3... 来获取第1、2、3...个参数。$0是脚本名本身。# 用法: ./backup.sh /path/to/source /path/to/backup SOURCE_DIR$1 BACKUP_BASE$2 if [ -z $SOURCE_DIR ] || [ -z $BACKUP_BASE ]; then echo 用法: $0 源目录 备份根目录 exit 1 fi # ... 其余脚本逻辑使用变量 SOURCE_DIR 和 BACKUP_BASE ...Python 脚本参数使用sys.argv列表或更强大的argparse模块。import sys if len(sys.argv) ! 3: print(f用法: {sys.argv[0]} 源目录 备份根目录) sys.exit(1) source_dir sys.argv[1] backup_base sys.argv[2]使用argparse可以定义可选参数、默认值、帮助信息等更加专业。6.3 安全与伦理脚本是把双刃剑脚本能力强大但用之需慎。权限最小化原则不要用 root 或管理员权限运行不必要的脚本。你的备份脚本不需要管理员权限就能操作你的用户目录。谨慎处理删除和覆盖操作在脚本中执行rm、del或覆盖文件前可以先打印出将要操作的文件列表确认无误后再实际执行。或者先实现“模拟运行”模式-n或--dry-run参数。警惕来源不明的脚本从网上下载的“一键脚本”、“破解脚本”如热词中的“navicat premium 17破解脚本”风险极高。它们可能包含恶意代码窃取你的数据或破坏系统。尽量使用官方渠道和可信来源的脚本对于复杂操作理解其原理后自己编写更安全。尊重规则与法律用于学习和技术研究的自动化脚本是好的但用于恶意抢票、游戏外挂、爬取受法律保护或违反网站条款的数据则可能涉及法律和道德问题。技术本身无罪但使用技术的方式决定了它的性质。脚本学习的道路是从“用脚本”到“写脚本”再到“设计脚本”的过程。最开始你可能是为了偷懒复制粘贴一段网上的命令。然后你开始修改其中的路径和参数。接着你发现需求不匹配开始学着组合不同的命令加入判断和循环。最后你能够为一个复杂的流程从零开始设计并实现一个健壮、可维护的自动化解决方案。这个过程也是你计算思维和解决问题能力不断提升的过程。拿起你的文本编辑器从解决手边那个最微小的、重复的麻烦开始吧。
返回列表