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);

 

posted @ 2018-08-13 23:05  花飘水流兮  阅读(275)  评论(0编辑  收藏  举报