powershell 如何將多個變數內的值,一行一行寫入至檔案
-
2010年6月22日 上午 10:25
Dear 各位前輩 :
想請問powershell 如何將多個變數內的值寫入至檔案內,
$stra = Get-Content 'D:\test1.txt'
$strb = Get-Content 'D:\test2.txt'
$strc = Get-Content 'D:\test3.txt'$today = Get-Date -format "yyyyMMdd"
set-content "a,b,c" -path D:\$today.csv利用 add-content 的方式,檔案內容都會像
a1a2
a3
b1
b2
b3
c1
c2
c3
但是想得到的檔案內容是
A1,B1,C1A2,B2,C2
A3,B3,C3
請教前輩們,我應該如何才能得到此結果
謝謝
所有回覆
-
2010年6月23日 上午 12:29
講實話,看不懂您的程式碼,原因如下:
- 前面 3 行宣告的變數,卻沒看到後面程式碼有用他們
- 程式碼內容只看到 set-content,卻要說:利用 add-content 的方式,...
add-content 本來就會自動加入換行,所以如果要讓多個變數之內容位於同一行,就先使用一個變數來儲存那些變數,如下所示即是一例:
$string = $str1 + $str2 + $str3
☞ 這裡是「免費的討論區」,付費支援服務請造訪
此處,享受尊榮服務 ☜
如果回覆對您有幫助,請記得按下「
標示為解答」。
在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。 -
2010年6月23日 上午 01:29
Dear alex
抱歉 ,程式碼沒有打完整,我以為重點只是 add-content的語法跟如何達成
$stra = Get-Content 'D:\test1.txt'
$strb = Get-Content 'D:\test2.txt'
$strc = Get-Content 'D:\test3.txt'$stra = $stra -replace "^\s+|\s+$"
$stra = $stra[1..($stra.count-2)]$strb = $strb -replace "^\s+|\s+$"
$strb = $strb[1..($strbl.count-2)]$strc = $strc -replace "^\s+|\s+$"
$strc = $strc[1..($strc.count-2)]$strd = $strb | ForEach {$_.substring(0,5)}
$stre= $strb | ForEach {$_.substring(5)}$strWirte = $strb + , + $stra + , + $strd+$stra <== 早上加的
$today = Get-Date -format "yyyyMMdd"
set-content "a,b,c" -path D:\$today.csv <==我是標頭add-content -path D:\$today.csv -value $strWirte
以上是完整的程式碼,今天早上測試的結果,仍然是有自動換行
謝謝
剛剛試完的結果,我好像少做了什麼,因為初學階段,好像有邏輯不清楚的地方
在麻煩前輩們 ,指導一下
PS : $stra , $strb , $strc 每個檔案內有約400筆的資料
-
2010年6月23日 上午 01:46$strWirte = $strb + , + $stra + , + $strd+$stra <== 早上加的
這樣執行都不會出錯?要加上 " :
$strWirte = $strb + "," + $stra + "," + $strd+$stra
☞ 這裡是「免費的討論區」,付費支援服務請造訪
此處,享受尊榮服務 ☜
如果回覆對您有幫助,請記得按下「
標示為解答」。
在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。 -
2010年6月23日 上午 02:02
Dear Alex
$strWirte = $strb + "," + $stra + "," + $strd+$stra <==測試
還是會變成
a1
a2
a3
,
b1
b2
b3
$stra , $strb , $strc 每個檔案內有約400筆的資料
感謝您的耐心
-
2010年6月23日 上午 02:42您有看過每個 $stra , $strb , $strc 輸出的結果嗎?
☞ 這裡是「免費的討論區」,付費支援服務請造訪
此處,享受尊榮服務 ☜
如果回覆對您有幫助,請記得按下「
標示為解答」。
在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。 -
2010年6月23日 上午 02:59
Dear Alex
有看過 ,
$stra
1
.
.
400
--------------------
$strb
1
.
.
400
--------------------
$strc
1
.
.
400
Get-Content 完,就是一次取得400筆資料,總共取三個檔案,要整合成一個
$strd = $strb | ForEach {$_.substring(0,5)} <==擷取字元也是得用 foreach
再麻煩前輩指教了
-
2010年6月23日 下午 01:42
感覺您的程式邏輯似乎有點問題...
IT 人員高效率的 Windows 管理解決方案 - PowerShell V2(06/25 台北)
Windows PowerShell 是新一代的的命令列作業系統層殼,以及專為 IT 管理人員設計的直覺式指令碼語言 (.ps1 檔),讓 IT 人員不需具備程式設計的基礎就可以自行編寫指令碼來進行各種系統管理工作。現在,PowerShell V2 已內建且預設安裝在 Windows Server 2008 R2 與 Windows 7,歡迎您報名參場研討會,一起體驗 PowerShell V2 的 Windows 管理新世界!
☞ 這裡是「免費的討論區」,付費支援服務請造訪
此處,享受尊榮服務 ☜
如果回覆對您有幫助,請記得按下「
標示為解答」。
在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。- 已標示為解答 小猴子 2010年6月23日 下午 04:26
-
2010年6月23日 下午 04:26
Dear alex
抱歉,我是初學者,這些是我東拼西湊起來的,看到別人的文章有適合的程式碼就剪下來用,所以造成前輩們的困擾,深感抱歉
小弟在仔細去多了解點powershell與程式邏輯後,我再重新提問
謝謝前輩們指點
-
2011年2月15日 上午 03:41
Dear 各位前輩 ~
經過了半年的努力,我終於完成了我想要的功能,且都是用powershell程式碼
謝謝
- 已標示為解答 小猴子 2011年2月15日 上午 03:41

