嘟嘟社区

学习了一下powershell的基本的命令还挺不错的


一般经常用到的是ls|while read这样的,用来批量操作文件

在powershell中就变成这样ls|foreach{ … }

也可以是ls *mp4|foreach{ … }这样来操作mp4

大体上是一样的

linux中的grep,在powershell中是findstr,也支持通配符之类的

比如ls|grep mjj.txt就是ls|findstr mjj.txt

截取字符串麻烦一点,我没记住,linux上的简单点,直接就${text:3:5} ${text%.*}这些

powershell里对象属性有basename(ls出来的就是文件对象),挺方便的。就是D:MJJ.TXT,就得到D:MJJ(不带格式后缀)

还有一个很大的区别是TAB键,Linux下一般是只补全,没有输入就不补全,powershell是遍历目录下的文件(没有输入的情况下),习惯了之后都挺好用的

比如,我要把当前目录下的.ts文件都转码为mp4

就可以这样,拼接字符串要用(包起来),不然会被当作多个字符串

  1. ls *.ts|foreach{
  2. ffmpeg -i $_ -c:a copy -c:v h264 ($_.basename+".mp4")
  3. }

复制代码

其实也挺好用的,就是不让像平时的linux小鸡那种curl http://网络上的脚本|bash这样操作,默认的安全设置不让执行来历不明的脚本(哪怕是本地的.ps1文件(相当于.sh文件)也不让直接执行)