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

我认为你需要有两个参数来加入路径。喜欢join-path C:\ users(注意空格)。所以把每一个额外的路径作为一个单独的参数。

于 2013-09-05T18:58:41.900 回答
0

您需要通过添加引号来修复第一条路径并评估内部以添加 \Cleaned:

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