如何在運行時在 powershell 腳本中顯示 xcopy 的輸出

超級Dre

我有這個 powershell 腳本,我想將文件從我們的生產服務器複製到我們的測試服務器,並且只複製更新或更改的文件。腳本本身俱有更多功能,但這種複制就是其中之一。我為此使用了以下 XCopy 命令:

  ... some other scriptingcode
  try {
      xCopy $source $destination /f /e /r /k /y /d
  }
  catch {
      Write-Host "issue: $PSItem" -ForegroundColor Yellow -BackgroundColor Red
  }
  ... some more other scriptingcode

當我XCopy直接從 powershell 提示符運行命令時,它會顯示它的進度,正在復制的文件,而它正在運行,但是當我從腳本本身運行它時,它不會輸出任何內容。只是-Verbose在最後添加只會給我一個腳本錯誤。

我嘗試了以下方法:

  $output = $(xCopy $source $destination /f /e /r /k /y /d) -join "`r\`n"
  Write-Host $output

但這僅在已復制後才給我輸出,並且在沒有復制 1 或 2 個文件時不是問題,但當您有 100 或 1.000 個文件要復制時並沒有真正的幫助。僅供參考,這-join "'r'n"是因為當輸出多於一行時,輸出是一個數組,所以我不得不將這些行連接成一個字符串,可以由Write-Host.

我試圖用谷歌搜索解決方案,但我想我的谷歌技能還不夠好,無法讓我得到這個問題的任何結果。那麼,有沒有辦法在執行時XCopy輸出,就像直接從 powershell 命令行輸出一樣?

鯨魚

對於xcopy,您既可以輸出到主機,也可以使用 捕獲輸出foreach

try {
  $output = xcopy $src $dst /f /e /r /k /y /d | 
    Foreach {
      # write line to console
      $_ | Write-Host -ForegroundColor Yellow -BackgroundColor Red
    
      # add line to $output
      $_
    }
}

請注意,這xcopy不是 powershell 命令,因此它無法執行某些操作,例如使用默認值-verbose-ErrorAction標誌。它也不會引發終止錯誤,因此除非您正確設置,否則Try/Catch將不起作用$ErrorActionPreference

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在線運行我的 powershell 腳本?

如何讓 JavaScript 輸出顯示跨度樣式?

如何在 Powershells 的輸出中進行無緩衝/實時替換?

如何保存結果但不在終端中顯示輸出

如何以五個數字的行顯示輸出?

對xml輸出python腳本中的單詞進行排序和計數

如何在程序運行時打印在文本字段中輸入的文本?

如何在 console.log 中顯示輸出?

Powershell 腳本 - 如何讓此腳本僅輸出與某個字符串匹配的值

執行 bash 腳本時得到錯誤的輸出結果

將非文字腳本變量傳遞給 PowerShell 中的 Invoke-Sqlcmd 時出錯

如何在 gitlab 作業輸出中回顯日期和時間?

如何在一行中輸出 printf

當用戶按下回車鍵時,python 腳本中的“輸入”函數在終端中顯示回車符 (^M)

如何在 HTML/CSS 網格中顯示多個 p5.js 腳本

如何在 Mac 中不使用 `--user` 的情況下運行輸出 csv 的 exec 文件?

嗨,我試圖讓用戶輸出顯示在單獨的行中。現在,輸出顯示在同一行中。請解釋我是新手

當用戶在輸入字段中輸入以逗號分隔的值時。如何以列表格式顯示輸出

運行 os 命令並解析輸出的 Kotlin 腳本

Powershell - 如何讓我的 PSCustomObject 顯示兩個輸出

在電子郵件中顯示 Powershell 變量和 foreach 輸出

我在 VSCode 中的 python 代碼輸出與在我的 mac 終端中運行我的代碼時收到的輸出不同

如何將消息表單 shell 腳本返回到 Ansible playbook 以顯示為輸出

如何在不顯示窗口和超時問題的情況下運行 powershell 腳本

防止輸出在 Powershell 腳本中多次寫入

如何在 shell 腳本中運行 sacct 命令

在 Powershell 的 foreach 循環中輸出一個值

運行streamlit時如何在地址欄中顯示URL?

xcopy 僅在文件被複製時顯示