zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Vscode Task 基于win进阶版教程,手把手教会如何写task.json

VSCode教程JSONJSON 如何 基于 进阶 手把手
2023-09-27 14:27:32 时间

Powered by:NEFU AB-IN

Vscode Task 基于win进阶版教程

请一定要结合B站视频食用!!!!,下面的博客总体来说只是起到提纲作用
B站视频链接!!!

  • 前言

    之前有写过关于Vscode 的Task相关的博客,链接放在下面,基本上属于介绍一些常用属性,然后发了一下我做的例子。其实例子做的并不好,只要看过官方文档的基本都能码出来。之后也是感觉太局限了,于是精进了一下。直到昨天,刚刚过完春节,有时间想再琢磨一下,索性就要就一下CMD/DOS语法,看看能不能把Task搞得更精简一些

  • 第一阶段:介绍、准备与需求

    • 介绍

    DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”。
    cmd命令的起源:DOS
    Windows里面运行cmd出来的DOS不是真正的DOS,那是微软在windows里虚拟的DOS环境,是用来运行一些高级命令的,真正的DOS是脱离系统的。因为他本身就是一种操作系统。因此,可以得出一个结论就是:cmd是一个实现了DOS功能的接口,可以使用DOS的部分功能,支持DOS的部分指令。

    • 准备

      • CMD
      • 环境变量
      • Vscode
      • notepad ++
    • 需求

      需求源于打比赛的时候,每次都要创建一个文件夹,然后再创建对应的源文件,还有基于是CF还是Leetcode换不同的模板,基于使用哪种语言加载不同的模板。希望写出一种脚本,可以满足以上的需求

  • 第二阶段:改进原先项目

    先看一下原先项目能干什么

    • 改进1:更改command格式

      1. 先读文档,看command处
      2. 改成一句一句
      3. 句前加 &
    • 改进2:环境变量

      1. 用户的和系统的都需要改,系统的改需要重启才能生效
      2. 改Path
        • set查看
        • 作用
        • 展示powershell脚本
      3. 添加词条 TemplatePath
        • 作用
      4. ps: 注意因为这里我们command是调用的cmd程序,而且我们的语句都是串起来的,可以理解先将句中的引用放上值,再执行语句,所以如果这里先set,后面是不能调用到的,可以举个例子
       set nasd=12312 & echo %nasd%
       echo %nasd$
      
    • 改进3:做成脚本

      • 传参

      • 每个参数含义

      • 每一句的含义

      • 运行查看

  • 第三阶段:完成需求

    • 创建脚本

      • 按注释打一遍
    • 中间语法问题

      1. for循环

        • %的使用
        • 不能通过下标访问
        • 如何退出,break
      2. set设置变量

        • 变量自增问题

        • 比较

      3. 延迟变量

        • 只要放在脚本中才生效,命令展示

        • 找DOS那篇博客

    • 增添至task.json

    • 展示成果

  • 结尾

    • 总结

      要说收获了什么,其实也没有什么,无非是完成了大伙每次比赛开题时,花个几秒钟完成的活。
      但其实我能感觉出来,我好久没有这么开心了。为了完成这个目标,从早上开始查资料,读文档,慢慢了解Task。然后开始网上翻教程,发现根本没有教这个的,翻到一篇还是自己写的 ,于是自己摸索,其中碰了很多很多壁,有的经典的问题,就放在视频和博客中讲了;有的其实不算是问题,但很需要花时间去探索
      从考完研到现在一个多月,每天就是码题,希望能找回曾经每天刷题的感觉,直到今天,才能找回一点。虽然做的东西比较垃圾,但总算没白费吧

    • 附录

      上文提到的,以前写的教程:Vscode 创建task并绑定快捷键教程
      doc:Vscode Task官方文档
      参考的语法讲解:DOS的特殊符号讲解
      之前写过的对拍讲解,也有部分bat代码:Windows C++ 对拍


      其余
      传参
      if语句
      for循环