ps提供了丰富的文件操作,如建立,删除,改名,移动,复制,文件夹建立,显示文件列表,同时对数组对象的遍历也很方便,如果在使用PS脚本时,希望现时传入参数,可以把参数声明为param,当然需要把它写在文件开头的位置。

下面是大叔在看完eshop项目后,写的几个测试代码,对它们进行了注释,方便大家学习。

Param([string] $rootPath) #输入参数
$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path #当前应用程序目录 Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow #定义字体颜色 if ([string]::IsNullOrEmpty($rootPath)) { #如果变量为空,就为它赋值
$rootPath = "$scriptPath\"
} Write-Host "Root path used is $rootPath" -ForegroundColor Yellow $projectPaths =
@{Path="$rootPath\src\web";Prj="test.txt"},
@{Path="$rootPath\src\api";Prj="test.txt"} $projectPaths | foreach {
$projectPath = $_.Path
$projectFile = $_.Prj
$outPath = $_.Path + "\publish"
$projectPathAndFile = "$projectPath\$projectFile"
Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow
remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue #先删除先来的文件夹及内容
Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow New-Item $outPath -type directory -Force #建立文件夹  Copy-Item $projectPathAndFile -Destination $outPath # 复制到指定位置 # dotnet restore $projectPathAndFile
# dotnet build $projectPathAndFile
# dotnet publish $projectPathAndFile -o $outPath
} $test=,, #定义简单类型数组
$test | foreach{
Write-Host $_ #遍历每个元素
} $testObj=@{name="zzl";age=},@{name="zhz";age=} #定义一个对象数组
$testObj | foreach{
$name= $_.name #必须将它赋给一个变量,如果直接在字符串里使用,它将输出自己的类型
$age=$_.age
Write-Host "name=$name,age=$age"
}

上面代码会在E盘指定目录进行文件的复制,这类似于网站的发布机制,从一个地方复制到网站目录。

其中param要求我们在使用ps1文件时,提供一下参数,当然可以不传,我们代码里也有对它的赋值。

整个DEMO运行的结果如图

PowerShell~文件操作和对象遍历的更多相关文章

  1. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  2. 野路子出身PowerShell 文件操作实用功能 MSSQL123

    因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职, 索性就网上各种搜,各种Demo,各种修改,花了半天时间,最后还是拼凑出来能达到效果了. 本身对PowerShe ...

  3. 在PowerShell中操作SharePoint对象

    1. 用PowerShell创建一个SharePoint内容对象创建一个自定义列表:$SPSite = New-Object Microsoft.SharePoint.SPSite("htt ...

  4. Win 32平台SDK中的文件操作

    读取文件: HANDLE hFile ; // 声明文件操作内核对象句柄 hFile = CreateFile(, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ...

  5. 读写应用程序数据-NSUserDefault、对象归档(NSKeyedArchiver)、文件操作

    ios中数据持久化存储方式一般有5种:NSUserDefault.对象归档(NSKeyedArchiver).文件操作.数据库存储(SQLite3).CoreData. 1.NSUserDefault ...

  6. ASP.NET中的文件操作(文件信息,新建,移动,复制,重命名,上传,遍历)(亲测详细)

    做了几天的文件操作,现在来总结一下,错误之处,还望指点!以文件为例,如果对文件夹操作,基本上将File换为Directory即可(例:FileInfo file = new FileInfo(Path ...

  7. paip.c++ qt 目录遍历以及文件操作

    paip.c++ qt 目录遍历以及文件操作 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/a ...

  8. AIR文件操作:使用文件对象操作文件和目录 .

    来源:http://blog.csdn.net/zdingxin/article/details/6635376 在AIR中可以方便的对本地文件操作,不过上次做了个项目,发现还是有不少不方便的地方,比 ...

  9. python file文件操作--内置对象open

    说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前工作目录)或者一个绝对路径,当传入路径不存在此文件会报错 ...

随机推荐

  1. 如何在 Ubuntu 云服务器上部署自己的 Rails 应用

    安装步骤  参考:https://ruby-china.org/topics/32851 在云服务器上安装Ruby|Rails : http://www.cnblogs.com/znsongshu/p ...

  2. TCO 2016 Round 1B

    problem 250 Problem Statement Vasa likes to construct sequences of numbers. If you tell him a positi ...

  3. dns服务器报错解决

    搭了个dns服务器,配置完毕老是报错,这里总结一下常见思路: ①关闭firewalld ②关闭selinux ③/var/named里面的配置文件所属用户组是否是root:named ④named.c ...

  4. get all sites under IIS

    https://stackoverflow.com/questions/2555668/how-to-programmatically-get-sites-list-and-virtual-dirs- ...

  5. 查看识别hadoop是32位还是64位

    问题导读: 1.从哪些地方可以识别hadoop是32位还是64位?2.hadoop本地库在什么位置? 来源:about云 本文链接:http://www.aboutyun.com/thread-127 ...

  6. OpenCV坐标系与操作像素的四种方法

    像素是图像的基本组成单位,熟悉了如何操作像素,就能更好的理解对图像的各种处理变换的实现方式了. 1.at方法 第一种操作像素的方法是使用"at",如一幅3通道的彩色图像image的 ...

  7. bzoj2337 XOR和路径——高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2337 异或就一位一位考虑: x为到n的概率,解方程组即可: 考虑了n就各种蜜汁错误,所以索性 ...

  8. bzoj4750

    单调栈+前缀和 max很明显用单调栈搞,但是异或和呢?异或和我们拆位,对于每段区间的异或和[l[i]-i],[i,r[i]]答案就是0->1,1->0的乘积,但是统计的时候事实上是[l[i ...

  9. Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别

    1.转自:https://blog.csdn.net/zwx521515/article/details/79300453 在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用&qu ...

  10. B. Simple Molecules

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...