Powershell 初探

Posted 水上由岐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"
    



以上是关于Powershell 初探的主要内容,如果未能解决你的问题,请参考以下文章

Powershell 初探

Cobalt Strike初探

Azure + MongoDB - NoSQL数据库集群初探(实践篇)

初探 Bazel

初探AlarmManager:使用

初探Scapy