2009-11-13 11 views
9

これは簡単な質問かもしれませんが、私はPowerShellを初めて使用しており、これを行う方法が見つからない場合があります。基本的には、指定したファイルが存在しない場合は.BATファイルを実行する必要があります。ファイル名は "mmddyyy .dat"のようなパターンで、mmddyyyyは今日の月、日(0プレフィックスは< 10)と年です。どのように公式ドキュメントについてドキュメントについてTrueまたはFalseファイルが存在するかどうかを確認し、PowerShellでバッチファイルを実行しますか?

test-path .\example.txt 

戻り

$File = "C:\temp\*mmddyyyy*.dat" # how to parse Get-Date mmddyyyy and build this pattern? 
#if $File exist # check any file exist? 
    .\myBatch.bat # run the bat file, can I run it in hidden mode? 

答えて

7

を私が作るお勧めします次のような再利用可能な関数:

function GetDateFileName 
{ 
    $date = Get-Date 
    $dateFileName = "$(get-date -f MMddyyyy).dat" 
    return $dateFileName 
} 
$fileName = GetDateFileName 
$filePath = "c:\temp\" + $fileName 

if([IO.File]::Exists($filePath) -ne $true) 
{ 
    #do whatever 
} 
+0

関数にargsとして2つのパラメータを追加し、結果を "{0} {1:d2} {2:d2} {3} {4}" -f arg [0]の形式で返すとします。 ..、arg [1]。どうすればこの機能を呼び出すことができますか? GetDateFleName( "C:\ temp \ *"、 "* .dat")を呼び出すと失敗します。 –

+2

'$ dateFileName =" {0:MMddyyyy} .dat "-f(Get-Date)'は少し短く、あまり複雑ではありません。 – Joey

+0

関数にパラメータを追加します。 function foo([string] $ foo = "foo"、[string] $ bar = "bar") { Write-Host "Arg:$ foo"; Write-Host "Arg:$ bar"; } 、あなたはそうのような関数を呼び出す: foo "というのparam1" "PARAM2" – BlueSam

23

コマンドは次のとおりです。擬似コードは次のようなものでしょうか?それが私がチェックする場所です。 http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx

もeggheadcafe.comは例をたくさん持っている:私はpoweshellで正規表現を試していないが、 http://www.eggheadcafe.com/conversationlist.aspx?groupid=2464&activetopiccard=0

これはあなたを助けるかもしれない:

http://www.eggheadcafe.com/software/aspnet/33029659/regex-multiline-question.aspx

+0

どのようにギルド今日の日付に基づく文字列、パターンmmddyyyy?たとえば、今日は "11132009"となります。 –

関連する問題