cs 脚本
echo "你好Lance"|csi C:\Users\Administrator\Desktop\cm.csx
天生是可用ReadLine 来支持的,那么命令行参数就不是问题,相互之间可以穿插使用。
这样只能说太帅了,可以更懒了,带上for命令试试。
using System; Console.WriteLine("Please input param:"); var filePath = Console.ReadLine(); filePath = filePath.Replace("\"",string.Empty); if (!System.IO.File.Exists(filePath))return; var fileInfo = new System.IO.FileInfo(filePath); Console.Write($"{fileInfo.CreationTime} \t {fileInfo.Length} \t {fileInfo.Name}"); return 1;
测试:for /r %a in (*) do @(if exist "%a" echo "%a" | csi C:\Users\Administrator\Desktop\cm.csx)
比较缺憾的是for之间(第二个csi仍然)很慢,说明没有缓存机制,看看什么时间可以加上一个这玩意,改造一下(这是个问题,缓存跟csc也就一回事了)。
该方法用于测试时或者小功能时非常方便,不必去创建一个c#工程之类的,重要的是没有powershell那么批骚的语法,要命的是还有vs这种东西智能提示写脚本,只能说太特么爽了。
csi /version 2.0.0.61501
--------------------------------------------------------------
2018年8月21日 后记
我是比较反感背东西、机械式的劳作...这些反人类 —— 原本就该机器做的事情。一个不大的应用,非要整linux,原本就打算ms搞定...反正一堆命令下来完事搞定环境。csi被全局倒不是意外,嘛滴,意外的是竟然运行得那么求快,这让原本c#之根的ms情何以堪。
---------------------------------------------------------------
2019-05-17 14:57:28
csi /version 2.10.0.0 ;原来原来用的是管道~呵呵呵
using System;
var args = Environment.GetCommandLineArgs().ToList();
//args.ForEach(t=>Console.WriteLine(t));
var file = new FileInfo(args[2]);
Console.WriteLine("");
Console.WriteLine($"/*\n*{file.Name}\n*/");
Console.WriteLine(File.ReadAllText(file.FullName));
for /r "\Projects\Lpz\Bmy\Commons" %a in (*) do @((csi "D:\360MoveData\Users\Lance\Desktop\a.csx" "%a")>> b.txt)
dotnet script https://github.com/filipw/dotnet-script
for /l %a in (1,1,2) do @(dotnet script print.csx -- "%a")
#! "netcore 3.1" using System; foreach (var arg in Args) { Console.WriteLine(arg); } for(var i=1;i<=9;i++) { var line = string.Empty; for(var j=i;j<=9;j++) { line += ($"{i}*{j}={i*j}\t"); } Console.WriteLine(line); }
#! "netcore 3.1" using System; using System.IO; var oldFile = Args[0]; if (!File.Exists(oldFile)) { Console.WriteLine($"不存在{oldFile}"); return; } File.Copy(oldFile, $"{oldFile}.back"); return; var file = new System.IO.FileInfo(oldFile); Console.WriteLine(file.Extension); foreach (var arg in Args) { Console.WriteLine(arg); } for(var i=1;i<=9;i++) { var line = string.Empty; for(var j=i;j<=9;j++) { line += ($"{i}*{j}={i*j}\t"); } Console.WriteLine(line); }
(dotnet script 修改扩展名.csx -- "C:\Users\liang\Desktop\tt\omnisharp.json")
using System; using System.IO; var oldFilePath = Args[0]; var toExtName = ".mp4"; var fileInfo = new FileInfo(oldFilePath); if (!fileInfo.Exists) return; var newFilePath = string.Empty; if (string.IsNullOrEmpty(fileInfo.Extension)) newFilePath = $"{oldFilePath}{toExtName}"; else if(fileInfo.Extension != toExtName) newFilePath = $"{fileInfo.Directory}{fileInfo.Name.Remove(fileInfo.Name.Length- fileInfo.Extension.Length, fileInfo.Extension.Length)}{toExtName}"; //Console.WriteLine($"{fileInfo.}"); Console.WriteLine($"{newFilePath}"); return; File.Move(oldFilePath,newFilePath);