2016-04-01 61 views
1

PowerShellスクリプトを使用してWindowsの場所ではなくSVNの場所からファイルを移動する必要があります.WindowsのパスをSVNのパスに置き換えても動作しません。 :Powershell SVNディレクトリ内のファイルを移動するスクリプト

function CheckPath($path) 
{  
Test-Path $path -PathType Container 
} 

function Navigate() 
{ 
$directory = "C:\Test" 
#Instead of above windows path I want to give SVN path as below: 
#https://svn.test.local/svn/Files/ 
$qscomponent="SomeValue" 

if (CheckPath -path $directory) 
{ 
Write-Host "Executing scripts from $directory" 
Get-ChildItem $directory -Filter LTR*.sql | Foreach-Object -Process {    RunScript -comp $component -file $_.FullName } 
} 
else 
{ 
Write-Host "Invalid component: the path does not exist!" 
} 
} 
+0

AFAIKでは、FileSystemプロバイダはHTTP経由のディレクトリの参照をサポートしていません。 –

+0

それでは、どのようにしてSVNからファイルを選んで実行しますか? 私はそれらを窓の場所/ディレクトリでチェックしたくありません。 – Daryl

+0

最初にダウンロードしてからローカルで実行する –

答えて

0

リモートSVNサーバー上にあるものは実行できません。それを行うには、少なくともそのファイルをローカルにダウンロードする必要があります。

これは完全に透明にするには、svn lsコマンドに依存するスクリプトを作成することができます。あなたはcdいくつかのフォルダにそれがSVNファイルのリストを取得する時期(理想的にset-locationにプロキシを使用)が、プロンプトが容易になるように、

一つの例は、prompt機能を変更することです。フォルダを入力すると、このプロンプト機能は、あなたのsvnリモートリポジトリ上のすべてのファイルを一覧表示します

function prompt() { 
    $lastCmd = h | select -Last 1 -expand CommandLine 
    if ($lastCmd -match '^cd ') { 
     $x = svn info 
     if ($x -ne $null) { 
      svn ls | % {Write-Host $_} 
     } 
    } 

    "PS $pwd>" 
} 

あなたが.svnフォルダを持っていますが、どのファイル(これについては、depth to empty when doing checkoutを設定していない)とします。あなたは、希望のファイルをダウンロードして実行するシンプルなpowershell関数を作成できます(svnは1つのファイルをチェックアウトすることができます)。

lsproxiedして実行し
ls *.exe | execute 

:あなたが実際にあなたは、インスタンスの実行機能のために、パイプのようなものをできるアイテムの配列を返すことができるよう

それはあなたのプロキシcdまたはls場合よりPowershelly感じるだろうsvnリポジトリのローカルパスの内側にあり、executeは、おそらくTEMPのパイプファイルに対してsvn checkoutを使用して実行します。

関連する問題