powershell 在输出中将换行符放在不适当的位置

2024-02-02

我有一个 PowerShell 脚本,但某些输出在继续下一行之前会在任意点被剪切。这非常烦人。

例如,我可以使用Write-Host只要我想要,该行就会继续(注意,在 Team City 中运行,并且 Team City 添加了一些前缀信息 - 但是可以观察到相同的效果,将输出通过管道传输到文件):

[10:04:45] [Step 5/7]  - Found Windows Service at G:\TeamCityData\TeamCityBuildAgent-1\work\282b8abc9094651e\Artefacts\windows-services\WindowsService.Dummy\WindowsService.DummyService.exe

其他时候,输出似乎在任意点人为地截断,就像它被包裹在一个窗口中一样(窗口不存在)。

所以,这一行:

Copy-Item -Path $fullSourcePath -Destination $destPath -Recurse -Verbose -ErrorAction Stop

在 Team City 中生成此输出(添加一些前缀信息):

[10:04:46] [Step 5/7] VERBOSE: Performing the operation "Copy File" on target "Item: 
[10:04:46] [Step 5/7] G:\TeamCityData\TeamCityBuildAgent-1\work\282b8abc9094651e\Artefacts\windows-services\WindowsService.Dummy\WindowsServi
[10:04:46] [Step 5/7] ce.DummyService.exe Destination: 
[10:04:46] [Step 5/7] \\SERVER001\scheduled-tasks\ProductFolder\Dev\DummyWindowsService\WindowsService.DummyService.exe".
[10:04:46] [Step 5/7] VERBOSE: Performing the operation "Copy File" on target "Item: 
[10:04:46] [Step 5/7] G:\TeamCityData\TeamCityBuildAgent-1\work\282b8abc9094651e\Artefacts\windows-services\WindowsService.Dummy\WindowsServi
[10:04:46] [Step 5/7] ce.DummyService.exe.config Destination: 
[10:04:46] [Step 5/7] \\SERVER001\scheduled-tasks\ProductFolder\Dev\DummyWindowsService\WindowsService.DummyService.exe.config".

我该如何阻止这种荒谬的行为呢?我希望输出在行尾正确渲染换行符,而不是在文件名中间。

UPDATE

下面的评论表明这是 TeamCity 捕获输出的方式存在问题。但是,如果我直接在 PowerShell 控制台中执行类似的命令并将输出通过管道传输到文件,也会出现同样的问题。

命令:

copy-item -Path F:\logs -Destination .\ -Recurse -Verbose *> F:\logs\copy-item-output-1.txt

产生如下输出:

Performing the operation "Copy File" on target "Item: F:\logs\20161103-140649-ProductName.Program.log 
Destination: F:\Destination\1234567890abcdefghijklmnopqrstuvwxyz\this-is-a-long-path-name-to-show-wrapping-issues-with-copy-it
em\logs\20161103-140649-ProductName.Program.log".

正如您所看到的,它也会将文件路径分割成几行,即使它被发送到文件而不是控制台窗口。


以下解决方案(已经有10多年历史了,最近可能有更聪明的方法吗?) https://blogs.technet.microsoft.com/heyscriptingguy/2006/12/04/how-can-i-expand-the-width-of-the-windows-powershell-console/两者都适用电源外壳 and PowerShell ISE:

$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
### do not change $newsize.height
$newsize.width = 3000               ### [int] type; max. value unknown at present
$pswindow.buffersize = $newsize
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

powershell 在输出中将换行符放在不适当的位置 的相关文章

随机推荐

  • 自定义从 UITextView 打开的自动 MFMailComposeViewController

    我有一个简单的UITextView其中有一个电子邮件链接 文本视图是可选择的并检测链接 这样 您可以单击电子邮件 它会以模式方式打开MFMailComposeViewController视图控制器 但是 我在应用程序启动时做了一些自定义 U
  • 当应用程序在 Android 10 中被杀死时,WorkManager 无法工作,尽管在版本 9 之前工作正常(Pie)

    当应用程序被 Android 10 中的后台任务杀死时 我没有通过 Workmanager 收到通知 我发现了这个问题 它适用于所有 Android 版本 直到 Andorid 9 为了测试这一点 我在 9 和 10 版本上同时运行该应用程
  • 使用 DTE.ExecuteCommand 响应对话框

    有没有办法说Yes or No or OK使用以下命令打开 Visual Studio 2015 时出现对话框 消息框EnvDTE 我尝试在盒子打开时调试我的应用程序 但我不知道要寻找什么 我也尝试过在内部搜索这个命令列表 https gi
  • 关闭Excel应用程序的正确方法

    我正在编写一个应用程序 它使用以下代码访问 Excel 文件 RBTApplication new Excel Application RBTWorkbooks RBTApplication Workbooks RBTWorkbook RB
  • C++中如何判断一个指针指向什么类型的对象?

    假设我有class SuperClass public int a and class SubClass SuperClass public int b 我获取了一个指向子类实例的指针SubClass subPointer并将该指针寻址到超
  • 如何检查客户端网络/防火墙上的端口是否打开?

    最后通过 jQuery AJAX 和 JSONP 的 超时 属性解决了这个问题 看我自己的回答 请参阅更新的部分 我也尝试过使用小程序 如果您能提供小程序实现的解决方案 我们将毫不犹豫地接受您的答案 我正在使用基于 Java 的 Web 应
  • 如何在 React Native 中添加按钮网格样式?

    我最近将手放在了 React Native 上 并尝试将按钮动态添加到视图中 我想要一个像这样的结构 在引导程序中我会添加一个带有 col md 4 的类 A A A A A A A A A A A A 我已经可以添加按钮 但它们总是出现在
  • .NET / C# 的线性编程库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要求解欠定线性方程组和约束 然后找到最小化成本函数的特定解决方案 这需要通过在 NET 和 Mon
  • 如何在谷歌地图目标c上旋转自定义标记图像

    目前我正在开发一个像 Uber iOS 应用程序这样的应用程序 我已经集成了 Google Maps SDK 并且还显示了用户当前位置的自定义图像 目前我正在从服务器获取一些驾驶员当前位置详细信息 例如 100 个驾驶员 我保存在一个NSA
  • 我不清楚应用函子评估

    我目前正在阅读 Learn a Haskell for Great Good 并且我偶然发现了对某个代码块的评估的解释 我已经阅读了几次解释 并且开始怀疑作者是否理解这段代码的作用 ghci gt lt gt 3 lt gt 100 5 5
  • Android SearchView 过滤器 ListView

    我已在 SherlockAction Bar 中的 SearchView 中实现了搜索过滤器 当我输入 m 时 我想在下面的列表视图中显示过滤结果 该结果仅以 M 开头 依此类推 但现在它显示随机结果 public boolean onQu
  • matplotlib 需要 pyparsing

    我正在尝试使用 matplotlib 绘制一些数据 导入库时 出现错误 ImportError matplotlib requires pyparsing 我使用安装了 pyparsingeasy install pyparsing 但错误
  • 从 Access 数据库获取数据的正确方法

    我对如何从访问数据库获取数据有点困惑 首先将其收集在列表中然后从列表中获取这些数据是否正确 或者直接将其获取到数据库中是否可以 我的代码工作得很好 但我想知道是否有更好的方法来做到这一点 private void button3 Click
  • 为什么我不应该使用 Process.GetCurrentProcess().Kill() 退出我的 WinForm 应用程序?

    现在 当用户想要退出我的应用程序时 我必须执行一些操作 即与服务器断开连接 保存用户数据 然后执行以下操作 使用布尔值退出所有主循环 中止仍在运行的线程 通常是我的服务器轮询线程 请调用Application Exit 这需要几秒钟才能退出
  • 点击显示更多 - 也许是 JS?

    我不确定使用什么语言或如何执行此操作 但我希望在页面上有一个单词 当单击时 它会在下面显示更多内容 再按一下 那东西又会隐藏起来吗 有任何想法吗 基本上 您需要操纵display要隐藏 显示的元素的 CSS 属性 span Show spa
  • 如何使用Spring响应式增量进度更新来逐一处理每个产品?

    我需要有关 Spring Reactive 的帮助 其中休息调用会发布 Json 对象列表 并且 Spring Boot 服务器应一一发送处理事件 让我用一个例子来简单解释一下 假设前端 UI 中有 20 个产品 用户选择所有要处理的产品
  • PHP:如何使用 HTTP-Basic 身份验证发出 GET 请求

    我想从此端点获取交易状态 https api sandbox midtrans com v2 orderid status 但它需要一个基本的身份验证 当我将其发布到 URL 上时 我得到的结果是 status code 401 statu
  • ASIHTTPRequest 构建/链接错误

    void getFacebookProfile NSString urlString NSString stringWithFormat https graph facebook com me access token accessToke
  • 在 shell 脚本中使用 psql 创建数据库将用户名作为数据库名称

    以下是我用来在 shell 脚本中创建数据库的命令 psql v ON ERROR STOP 1 username POSTGRES USER c CREATE DATABASE database 它抛出错误 FATAL database
  • powershell 在输出中将换行符放在不适当的位置

    我有一个 PowerShell 脚本 但某些输出在继续下一行之前会在任意点被剪切 这非常烦人 例如 我可以使用Write Host只要我想要 该行就会继续 注意 在 Team City 中运行 并且 Team City 添加了一些前缀信息