现在很方便就可以将 C# 作为某个脚本使用,本文这里的脚本指的是直接执行源代码的方式。现在是 2020 现在的 C# 默认在 dotnet 的支持下,可以作为脚本使用,本文将告诉大家使用 C# 写脚本的优势和方法

优势

优势如下:

  • 基于 dotnet 的 C# 有整个 dotnet 的基础库和通过 NuGet 带来的海量的第三方库,有超级多的功能都有大佬实现过。使用 C# 写脚本可以通过大量的库快速完成任务,站在巨人的肩膀上也是一种进步
  • 日常咱开发用的是 C# 如果此时采用其他的语言如 bat 或 py 等,虽然这部分脚本也很优秀,但是架不住咱不是天天维护,每次去写总是发现熟练度不够。而熟练度不够带来的问题就是对里面一些细节的坑不够了解,或者了解但是写的时候忘了。此时的脚本的可维护性以及稳定性都不是很好。当然脚本本身就不看重以上两点。最重要的应该就是写的时候的效率了,千万不要和我吹 py 的编写效率比 C# 高哈,这完全取决于熟悉程度哦。千万记住,前提是咱不是天天写脚本的
  • 调试方便,支持复杂的逻辑。虽然其他的语言如 PowerShell 等都有调试工具,但是一个新的调试工具上手起来也是有成本的。而采用 C# 可以让咱用上太阳系最强的 VisualStudio 工具辅助调试,调试手段特别多。在支持了调试之后,就可以放心开启复杂逻辑模式,当成业务代码一样来写。在说到调试方便的时候,就不得不说到最难调试的 bat 脚本了,这部分脚本的中间变量完全需要靠输出

使用方法

一句话跑起来

dotnet run

一句话就可以执行脚本了,执行方法就是进入到脚本所在的文件夹,通过 dotnet run 命令就可以自动构建然后运行构建的应用,也就是本质上还是执行一个 exe 文件,但是咱可以作为脚本,用源代码的形式分发

那么从零开始创建一个脚本可以如何玩?

我比较推荐在 VS 上创建,在 VS 里面新建一个 dotnet core 控制台应用就可以了。创建完成编写脚本,调试完成,发布。发布的时候是发布整个代码文件夹,核心只是包含一个 csproj 项目文件,和用到的 cs 脚本代码文件

而纯命令行的可以使用如下方法

dotnet new console -o Foo

请将上面的 Foo 替换为你创建的脚本名,此时使用中文名也是可以的(大佬不要喷我),当然用中文名的时候有些 Linux 系统对此支持不是特别好

上面这句命令就是创建默认的 dotnet 控制台应用,这个控制台应用默认只是包含两个文件,一个是 xx.csproj 项目文件,另一个 Program.cs 脚本代码文件

然后通过 cd 命令进入到刚才创建的脚本文件夹

cd Foo

当然,需要你替换 Foo 为你创建的脚本名

此时可以尝试在 Program.cs 文件里面的 Main 方法添加一些逻辑,如更改输出内容等。在 C# 脚本里面,在运行的时候都是从 Main 方法开始的,也就是入口代码应该放在这个函数里面

在进入到脚本所在文件夹的时候,就可以通过 dotnet run 这一句命令执行起来了

这样就能做到特别方便使用 C# 作为脚本使用,可以将 C# 脚本放在自动构建上,如 gitlab 的 ci 或 GitHub 的 Action 等

使用 dotnet run 的命令是全平台的哦,也就是在 Linux 服务器上和在 Windows 设备上都是相同的这一句命令就能运行起来脚本。只需要在脚本里面没有写平台相关的代码,就可以全平台运行的

更多命令

指定运行某个文件夹的脚本

作为脚本的时候,其实小伙伴可以注意到,上面代码是需要通过 cd 命令进入到某个文件夹的,此时会干扰当前工作路径。而 dotnet run 命令提供了参数,可以让咱指定运行的是哪个文件夹的脚本

指定运行 Foo 文件夹里面的脚本,下面代码将会尝试执行 Foo 文件夹里面的脚本,但是前提是 Foo 文件夹里面仅有一个 csproj 项目文件,同时项目里面的代码是能构建通过的

dotnet run -p Foo

这里的 -p--project 缩写

传入参数

默认添加的参数都是作为 dotnet run 命令的参数,这里的命令能添加的参数特别多,请看 dotnet run command

而如果需要给运行的脚本传入参数,需要添加 -- 字符,在 -- 后面的命令就是传给脚本的参数,如下面代码

dotnet run -p Foo -- 123

上面代码的 123 将会传入到脚本里面,可以在脚本的 Main 方法的参数拿到传入的命令

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。


http://www.taodudu.cc/news/show-2258427.html

相关文章:

  • 脚本、脚本语言、写脚本都是什么呀???
  • Kotlin如何写脚本
  • 如何写一个脚本(附送一个脚本)
  • 高效编写脚本的技巧分享
  • 从零开始学写脚本【第一天】
  • xml--json代码大全
  • qqxml卡片 php代码,qqxml卡
  • qqxml代码天气预报qqxml代码跟url跳转的关系
  • json代码恶搞地图完整版qqxml地图卡片代码
  • QQxml和json代码生成卡片的方法
  • 写轮眼
  • qqxml代码-班级作业xml卡片代码班级作业
  • qqxml图片代码_QQxml卡片代码合集超大图
  • 邪少微信自定义分享卡片链接的解决方案(可自定义分享标题 自定义分享链接 分享描述 分享缩略图)
  • 太极发送卡片软件_xml卡片消息制作软件下载-qq xml卡片消息生成器最新版0.8.10.209 免费版-东坡下载...
  • QQ图片制作跳转
  • android 卡片消息,安卓QNotified 支持xml卡片QQ消息 - 陌路人博客
  • QQ自动播放动态视频json卡片怎么换地址
  • 2021-02-19
  • XML语言的基本语法-Java Web
  • qqxml图片代码_PCQQ - 发送自定义的XML卡片消息
  • qq红包领取支付宝红包功能,qqxml跳转技术
  • 太极发送卡片软件_超详细介绍如何利用太极+QN框架制作一个属于自己的QQxml卡片...
  • QQxml红包跳转群代码
  • qqxml图片代码_动态图的QQXML代码示例——篮球规范动作示范!
  • qqxml图片代码_QQXML代码大全(持续更新)
  • qqxml图片代码_分享三款高级qqxml消息卡片代码
  • QQXML代码
  • QQXML技术
  • 13 集成测试之自顶向下集成测试方法

使用 C# 写脚本的优势和方法相关推荐

  1. python写地下城脚本下载_在python下写脚本的方法

    在python下写脚本的方法 发布时间:2020-07-18 11:43:36 来源:亿速云 阅读:68 作者:清晨 这篇文章主要介绍在python下写脚本的方法,文中介绍的非常详细,具有一定的参考价 ...

  2. 不写脚本,也可以拍摄、剪辑好视频,教你一个快速有效的方法

    今天大周来教你一个快速有效的方法,不用写脚本也能拍摄.剪辑好视频. 不写脚本怎么拍摄剪辑视频?大家都知道写脚本是一件非常麻烦.痛苦的事情. 当我们刷视频刷到类似故事情节:美满爱情故事.美满和睦的家庭. ...

  3. 要写脚本,编程不好不要紧--浅谈CTF中脚本的编写方法

    1. 脚本在CTF比赛中的作用 CTF夺旗赛中往往分为杂项(MISC).密码(CRYPTO).WEB.逆向(REVERSE)和PWN. 在目前的比赛中,各种工具起到的作用在不断下降,一击必杀拿到fla ...

  4. 揭秘!用标准Go语言能写脚本吗?

    导语 | Go作为一种编译型语言,经常用于实现后台服务的开发.由于Go初始的开发大佬都是C的老牌使用者,因此Go中保留了不少C的编程习惯和思想,这对C/C++ 和PHP开发者来说非常有吸引力.作为编译 ...

  5. 关于引流脚本,你了解的引流脚本的优势有哪些?

    如今很多朋友都对脚本引流这行有非常大的兴趣.其实目前的引流脚本前景我就可以洋洋洒洒写上成千上万字的概述.当然了,关于引流脚本这个事情,不是属于互联网的行业的朋友可能还不太清楚,但是对于经常在互联网上泡 ...

  6. Linux中执行shell脚本的4种方法

    这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写 ...

  7. shell实例第19讲:一个脚本中调用另一个脚本的3种方法

    在Shell脚本中调用另一个脚本(3种方法) 准备:主脚本是second.sh,主脚本中调用first.sh 方法1:exec(1)执行方式:exec /home/weibo/shell_test/s ...

  8. 使用Kotlin写脚本

    前言 Kotlin不仅可以用来写Android,也可以写后端,Desktop桌面程序,脚本(和未来的ios,网页,native等) 比如开发时使用Gradle的build.gradle也可以使用kot ...

  9. 爬虫python 科研有用吗_为什么说用python写爬虫有优势?

    之前和做Java的小伙伴聊过对比Java和python,就以这个为开头,跟大家聊聊为什么要学习python,他有哪些优势吧~ 对比Java和python,两者区别: 1.python的requests ...

  10. java让服务器停止运行,java调用远程服务器的shell脚本以及停止的方法实现

    最近接了个需求,要求远程调shell脚本,你没听错!!!需求就一句话,咱是谁,咱是优秀的开发选手.考虑再三,有两种实现方式: 方案一:脚本所在服务器安装一个客户端,也就是自己写的一个小程序,本地通过端 ...

最新文章

  1. 简单快速安装Apache+PHP+MySql服务环境(三)—— 下载安装phpmyadmin
  2. (1) ebj学习:基本概念
  3. 最伟大最不可思议最令人感动的父亲
  4. [Leetcode]@python 107. Binary Tree Level Order Traversal II
  5. 中国IT行业盛行,互联网行业早已饱和!程序员“过多”是主要原因?
  6. 花51万请明星和网红带货仅卖5000元,法院这样判了...
  7. Ubuntu通过apt-get安装OpenCV
  8. 小红书创始人瞿芳回应裁员风波:战略部署清晰 人员翻倍
  9. Akka 2 Actor 源码
  10. 查看solaris系统的版本和位数
  11. 程序员王不留到底干了啥?!
  12. getvod.php_飞飞影视系统飞飞cms2.8标签大集合
  13. Unity_线性空间
  14. Linux第7章Gdk及Cairo基础,GNOME 平台的2D图形编程(GTK,GDK,Cairo...) 简介 [转]...
  15. JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin
  16. 基于Java毕业设计大学生兼职网站源码+系统+mysql+lw文档+部署软件
  17. 软件工程毕业设计选题java_2021年计算机专业Java相关毕业设计如何选题更容易通过...
  18. 1月更新!EasyOps® 28+新功能“狂飙”上线~
  19. 今天来聊一聊互联网35岁梗,这个行业真的不需要35岁以上从业人员?
  20. 排气控制系统--中英文翻译

热门文章

  1. ubuntu下安装MP4Box
  2. 计算机excel宏代码怎么写,教你如何使用Excel VBA VBA新手必看
  3. Linux Debian10 如何安装jemalloc 以及 Newer version of jemalloc required 问题
  4. Qt介绍---QPA(Qt Platform Abstraction)
  5. android 限制后台进程,不超过4个进程 开发者选项,后台允许不超
  6. cdrx4自动排版步骤_如何在CorelDRAW软件排版CDR怎么快速排版技巧?
  7. linux flash文件读取,Linux flash 文件系统剖析
  8. 【解决】简单有效的使用lodop打印小票功能
  9. linux常识 菜鸟教程
  10. 传输层 可靠传输 连续ARQ协议和滑动窗口协议