我正在清理一些日志文件并尝试将其复制到此处创建的新文件夹中。 但它失败了:
$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
当我尝试以下操作时,它不起作用。
Remove-Item $ path \ Cleaned -force
任何想法。
再次感谢。
-T
答案 0 :(得分:0)
我认为你需要有两个参数来连接路径。像join-path C:\ users
一样(注意空格)。因此,将每条额外路径作为单独的参数。
答案 1 :(得分:0)
您需要通过添加引号来修复第一个路径并获取内部评估以添加\ Cleaned:
$newpath = join-path "$($f.directoryname)\Cleaned" $($f.basename + "_new" + $f.extension)