【问题标题】:Powershell - Copying to a new folderPowershell - 复制到新文件夹
【发布时间】:2013-09-05 18:53:01
【问题描述】:

我正在清理一些日志文件并尝试将其复制到此处创建的新文件夹中。 但它失败了:

$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

第二季度: 我喜欢删除目录“Cleaned”,如果它已经存在,就在这一行上方。

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

当我尝试以下操作时,它不起作用。

移除项目 $path\Cleaned -force

任何想法。

再次感谢。

-T

【问题讨论】:

    标签: powershell directory


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】: