0

いくつかのログ ファイルをクリーンアップして、ここで作成される新しいフォルダーにコピーしようとしています。しかし、それは次の行で失敗します:

$newpath = join-path $f.directoryname\Cleaned $($f.basename + "_new" + $f.extension) 

その行の「\Cleaned」部分を削除すると、正常に機能します。ただし、クリーンアップされたファイルを同じフォルダーにコピーするため、良くありません。その新しいフォルダーをディレクトリ名で渡す方法が間違っているかどうかはわかりません。どうすれば正しくできますか?

Function IIS-CleanUp1($path,$file)
{
    $f = get-item $path\$file1
    $newpath = join-path $f.directoryname\Cleaned $($f.basename + "_new" + $f.extension) 
    Get-Content $f | ? { $_ -match $control -and $_ -notmatch '^\#'} | Out-File $newpath
}

Function Files($path)
{
    $allfiles = Get-ChildItem($path) -name
    New-Item -ItemType directory -Path $path\Cleaned
    foreach ($file1 in $allfiles)
    {
        IIS-CleanUp1($path,$file)
    }

}

$path1 = "C:\Temp\IIS_CCHECK_AUG\IIS_CCHECK_AUG_202"
Files $path1

Q2: ディレクトリ "Cleaned" が既に存在する場合は、この行のすぐ上に削除したいと思います。

New-Item -ItemType directory -Path $path\Cleaned

以下を試してみるとうまくいきません。

アイテムの削除 $path\Cleaned -force

何か案は。

再度、感謝します。

-T

4

2 に答える 2

0

引用符を追加して最初のパスを修正し、内部を評価して \Cleaned を追加する必要があります。

$newpath = join-path "$($f.directoryname)\Cleaned" $($f.basename + "_new" + $f.extension)
于 2013-09-09T15:16:18.540 に答える
0

join-path には 2 つのパラメータが必要だと思います。いいねjoin-path C:\ users(スペースに注意)。したがって、すべての追加パスを個別の引数として配置してください。

于 2013-09-05T18:58:41.900 に答える