将测试路径输出重定向到文本文件

2023-12-05

txt 文件只是一堆 UNC 路径,我试图在验证测试路径后将此文本文件中的 UNC 路径列表放入另一个文本文件中。它在屏幕上显示经过验证的路径,但不会填充文本文件。

$cfgs = Get-Content .\cfgpath.txt
$cfgs | % {
  if (Test-Path $_) { write-host "$_" | Out-File -FilePath c:\temp\1.txt -Append }
}

来补充Zam 的有用答案 with 背景信息:

  • Write-Host writes to the host[1] (typically, the console aka terminal), which bypasses PowerShell's success output stream and therefore sends nothing trough the pipeline.

    • 请参阅底部部分这个答案Write-Host是适当的;简而言之:你通常应该只用它来仅显示 output.
  • Write-Output是用于生成的适当 cmdletdata output, but 很少有必要, 因为您可以信赖 PowerShell 的便捷性implicit输出行为,如 Zam 的回答所示并在这个答案.


Also, 你的命令会执行得更好如果你简单地管道% (ForEach-Object) 命令的输出作为一个整体 to a single Out-File call,而不是调用Out-File -Append 对于每个输入路径.

而不是使用%通过条件显式输出,您可以使用以下命令更优雅地实现您的命令Where-Object cmdlet:

Get-Content .\cfgpath.txt |
  Where-Object { Test-Path $_ } |
  Out-File -FilePath c:\temp\1.txt

另请注意为了节省strings到文件,使用效率更高Set-Content代替
Out-File,但请注意,在Windows PowerShell默认输出字符编码不同(在 PowerShell [Core] 6+ 中不再是问题,它始终默认为无 BOM UTF-8);看这个答案何时选择哪个 cmdlet。

相比之下,Out-File and >(其有效别名)使用PowerShell的格式化系统来编写用于显示输出文件的任何非字符串输入对象的表示,与默认情况下输出呈现到显示器的方式相同。
换句话说:以适合以后的方式将对象保存到文件中程序化处理,您需要使用结构化文件格式,例如 CSV (Export-Csv) 或 JSON (ConvertTo-Json,结合Set-Content).


[1] In PowerShell 5.0 and higher, Write-Host now writes to a new stream, the information stream (number 6), which by default prints to the host. See about_Redirection. Therefore, a 6> redirection now technically does allow you to send Write-Host output through the pipeline (though doing so is not a good idea) or capture / redirect it; e.g.,
Write-Host hi 6>&1 | % { "[$_]" }. Note that the type of the objects output by this redirection is System.Management.Automation.InformationRecord.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将测试路径输出重定向到文本文件 的相关文章

随机推荐

  • 自定义每个环境执行的 SQL

    我们使用 Flyway 来从 dev gt uat gt prod 推广我们的应用程序 使用 Flyway 来使用轻量级 SQL 数据库 例如 Derby 或 H2 将应用程序部署到开发人员桌面将非常有用 由于各种原因 对于我们的一些开发人
  • 尝试触发任何 Perforce 命令时,每次都必须在命令行中设置端口

    我是 Perforce 的新手 需要在命令行中工作 我很困惑为什么教程网站上的所有命令都写成这样 p4 命令 但每次尝试触发该命令时我都必须添加端口 例如 p4 同步 我必须输入 p4 p myhost myport 每次即使在登录后也会同
  • 附加频率表 - 带有缺失值

    目标是生成一个包含我选择的所有变量 关于 4 份报纸的阅读习惯 的频率表 这些变量本质上具有相同的可能值 1 Subscribed 2 Every week 3 Sometimes 4 Never 0 NA No Answers 如果变量之
  • 在用户控件 asp.net 中使用页面方法的替代方法

    有没有一种方法可以在用户控件内实现页面方法的功能 感谢任何帮助 谢谢 最简单的方法可能是将您想要的功能放入网络服务中 然后使用脚本服务属性以使其可用 工作原理与页面方法非常相似 相当广泛的例子here
  • Java:wait() 是否从同步块中释放锁

    我的印象是 wait 释放所有锁 但我发现这篇文章说 在同步方法内调用 wait 是获取内在锁的简单方法 请澄清我有点困惑 http docs oracle com javase tutorial essential concurrency
  • 将可迭代元素或不可迭代元素展开到数组中,而不检查元素 .length

    Given html div div div div calling document querySelector div 返回第一个div元素 其中 length不是返回值的属性 Calling document querySelecto
  • Oracle:不是按表达式分组错误

    以下是我的查询 我不确定是什么原因导致 Not A group by 表达式错误 任何帮助深表感谢 SELECT c courseID c courseName AVG a Mark as Average Mark FROM course
  • 如何使聊天中的链接可点击

    我的网站上有一个聊天 它从 JSON 文件读取并获取每条消息 然后使用Vue js 但是 我的问题是 当用户发布链接时 它不包含在锚标记中 a href a 因此它不可点击 我看到了这个post 我认为这样的东西会起作用 但是 我不允许向该
  • 如何在 Windows 上设置 gl3w?

    我一直在寻找设置 Gl3w 的详细指南 因为我到处都找不到 首先 下载gl3w https github com skaslev gl3w 然后 下载 Python 3 x https www python org downloads 接下
  • 关于HTML中相对文件路径的问题

    已经有一些关于这个主题的帖子 但对我没有帮助 我已经为 HTML 和 CSS 页面制作了地图结构 但无法将它们相互链接 我的地图结构 采购订单网页设计 Homepage HTML 页面主页 CSS 页面主页 图片主页 Sports HTML
  • Android意图语法

    在我尝试找出如何在应用程序中启动新意图的过程中 我遇到了几种表达它的方法 此语法返回运行时错误 即 ActivityNotFound 异常 Intent in new Intent com something something 当然 我的
  • API设计中如何避免“参数过多”问题?

    我有这个API函数 public ResultEnum DoSomeAction string a string b DateTime c OtherEnum d string e string f out Guid code 我不喜欢它
  • heightForRowAt 与estimatedHeightForRowAt 有什么区别?

    通常当我想设置行高时然后设置 func tableView tableView UITableView heightForRowAt indexPath IndexPath gt CGFloat return 300 受益者是什么estim
  • 将表格从 Word 复制粘贴到 Excel

    我有一个定期更新的word文档 我可以进入该 Word 文档 选择整个表格的内容并复制 然后进入 Excel 电子表格并将其粘贴 搞砸了 但是 我将其修复如下 sht Cells UnMerge sht Cells ColumnWidth
  • 在android中连接到oracle

    所以人们可能会告诉我这是一个坏主意 但我至少想尝试一下 EDIT该应用程序的目的是 仅当设备属于 oracle db 所在网络或通过 VPN 连接到网络时 它才能工作 数据库中的信息无法全局访问 这就是为什么我需要直接连接到 oracle
  • vue,如何动态地、以编程方式、单击将组件添加到 DOM 特定位置?

    我需要添加一个动态导入的组件 只需将虚拟标签添加到 DOM 结构中的特定位置即可 不幸的是 我发现的每一种方法都没有解决我的问题 我首先如何尝试 父组件 Editor vue
  • 当子id包含'.'时sql server中的分层排序

    我有一些像下面这样的孩子 childid 1 1 1 2 2 8 2 7 6 5 6 5 1 6 5 15 7 1 8 排序顺序将是 childid 1 1 1 2 2 7 2 8 6 5 6 51 6 5 15 7 1 我尝试转换为整数
  • 是否可以更改毕加索用于图像的缓存大小?

    我正在使用 Picasso 从 URL http 加载图像 有时 当我尝试使用毕加索的 预加载 图像时fetch 方法 图像不会被缓存 我猜是因为它的尺寸太大了 阅读答案this问题 但是setCache 似乎没有被我认可 我什至没有在毕加
  • Python继承结构和参数

    我正在尝试设计一个类结构 允许用户定义自己的类 以重载其他类中的预定义方法 在这种情况下 用户将创建 C 类来重载 D 中的 函数 方法 用户创建的 C 类与其他用户创建的类 A 和 B 具有共同的逻辑 因此它们继承自 C 来重载 函数 但
  • 将测试路径输出重定向到文本文件

    txt 文件只是一堆 UNC 路径 我试图在验证测试路径后将此文本文件中的 UNC 路径列表放入另一个文本文件中 它在屏幕上显示经过验证的路径 但不会填充文本文件 cfgs Get Content cfgpath txt cfgs if T