空気力学少女の诗

美好的每一天

Powershell 初探

最近从一名前端程序员转行到了数据库方面,并首次接触到了Power Shell这一工具
现在有这样的需求,在某个目录下有其他程序生成的dtsx文件,需要有选择地把它们拷贝到部署目录下面
需要拷贝的文件列表写在xml文件里
形式如下:

<batch>
    <add filepath="test.txt" virtualPath="PositionRisk" />
    <add filepath="test1.txt" virtualPath="PositionRisk" />
    <add filepath="test2.txt" virtualPath="PositionRisk" />
</batch>

filepath属性表示目录下文件名,virtualPath表示目标路径下的子文件夹
完整代码如下

$scriptPath=$MyInvocation.MyCommand.Definition | split-path;
$rootPath ="$scriptPath.\..\..\" | convert-path
$deployConfigPath="$scriptPath.\deployment.config"
$deployPath = "C:\Users\likaiboy\Desktop\des\etl\PositionRisk"

if(test-path $deployPath){
    remove-item $deployPath -Force -Recurse
}

new-item -path "C:\Users\likaiboy\Desktop\des\etl" -name "PositionRisk" -type directory


$doc=new-object System.xml.XmlDocument 
$doc.load($deployConfigPath) 
$root=$doc.DocumentElement 
$fileNodes=$root.SelectNodes("//add")

function CopyFile($item, $desPath){
copy-item -Path $item -Destination $desPath
}


for($i=0 ;$i -lt $fileNodes.Count ;$i++){
    $fileName = $fileNodes.item($i).filepath
    $filePath = "$rootPath\install\PositionRisk\$fileName"

    $virtualPathAttr =$fileNodes.item($i).virtualPath
    $virtualPath = "C:\Users\likaiboy\Desktop\des\etl\$virtualPathAttr"

    if( (test-path $filePath) -and (test-path $virtualPath)){
        CopyFile $filePath $virtualPath
    }else{
        "source file do not exists"
    }
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010668495/article/details/52347390
文章标签: powershell xml
个人分类: Powershell
想对作者说点什么? 我来说一句

初探PowerShell OneGet(四)

.

itanders itanders

2014-06-17 17:17:22

阅读数:852

XPE初探.....

2009年05月04日 2.72MB 下载

PowerShell技术指南

2010年08月24日 366KB 下载

iphone开发初探

2009年07月24日 24KB 下载

日本游戏制作理念初探_部分2

2016年08月18日 40.71MB 下载

没有更多推荐了,返回首页

不良信息举报

Powershell 初探

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭