Powershell 脚本 - gci
Powershell script - gci
我正在尝试使用以下脚本将输出分成两个文件:
try {
gci C:\Windows\System32 -r -Force | % {
if (!$_.PsIsContainer) {
$_.FullName;
$file = $_.FullName
}
} > paths.txt
} catch [System.UnauthorizedAccessException] {
$file > errors.txt
}
我知道您无法使用 catch [System.UnauthorizedAccessException]
捕获非终止脚本,但我也不想将 -ErrorAction Stop
与 catch [System.Management.Automation.ActionPreferenceStopException]
一起使用(例如 here), 因为我不会获取所有文件路径。
这对我有用
$epath2 = $null
Get-ChildItem -Path C:\Windows\System32 -Recurse -Force -Directory -ErrorVariable epath2 |
foreach {
if ($?) {
Out-File -InputObject $_.FullName -FilePath c:\test\paths.txt -Append
}
}
if ($epath2) {
$epath2 |
foreach {
($_.Exception -split "'")[1] | Out-File -FilePath c:\test\errors.txt -Append
}
}
捕获 -ErrorAction 变量中的错误并作为第二遍发送到 errors.txt。除了访问被拒绝之外,可能还有其他错误,但您会知道哪些文件夹出现问题
我正在尝试使用以下脚本将输出分成两个文件:
try {
gci C:\Windows\System32 -r -Force | % {
if (!$_.PsIsContainer) {
$_.FullName;
$file = $_.FullName
}
} > paths.txt
} catch [System.UnauthorizedAccessException] {
$file > errors.txt
}
我知道您无法使用 catch [System.UnauthorizedAccessException]
捕获非终止脚本,但我也不想将 -ErrorAction Stop
与 catch [System.Management.Automation.ActionPreferenceStopException]
一起使用(例如 here), 因为我不会获取所有文件路径。
这对我有用
$epath2 = $null
Get-ChildItem -Path C:\Windows\System32 -Recurse -Force -Directory -ErrorVariable epath2 |
foreach {
if ($?) {
Out-File -InputObject $_.FullName -FilePath c:\test\paths.txt -Append
}
}
if ($epath2) {
$epath2 |
foreach {
($_.Exception -split "'")[1] | Out-File -FilePath c:\test\errors.txt -Append
}
}
捕获 -ErrorAction 变量中的错误并作为第二遍发送到 errors.txt。除了访问被拒绝之外,可能还有其他错误,但您会知道哪些文件夹出现问题