2017-08-12 80 views
2

我想創建一個變量,它將使用powershell中的輸出運算符命名文本文件。第一個例子是沒有變量的情況下(正常工作)通常會做的事情,第二個例子是我嘗試去做的方式(不工作)。使用輸出運算符在powershell中命名.txt文件

例I:

"hello" >> janice.txt 

正如我們看到的,榜樣的結果,我會叫janice.txt

實施方式II的文本文件。 janice.txt就像第一個例子,因爲變量$ i的存儲字符串「賈尼斯」:

$i = "janice" 
"hello" >> $i.txt 

,我會從例如II預計將被命名爲一個文本文件的結果。

Powershell正在執行沒有錯誤的命令,但沒有創建.txt文件。 我想弄清楚爲什麼它不工作,如果有的話,它是完全不相關的。

這是我第一次問一個問題,所以我提前道歉,如果它是羅嗦,而非常模糊。

回答

4

試試這個:

"hello" >> "$i.txt" 

:)

+1

括號不是必須的,雙引號就足夠了。 (要擴展字符串中的$ var.property,您必須使用'「$($ var.property).txt」' – LotPings

+0

Eureka!現在具有完美意義,非常感謝:0 –

4

後明顯別人指給我; $i.txt正在做一個屬性查找。像$i.Length$file.FullName

由於沒有名爲.txt的屬性,查找返回$null,並且您的寫入無法如"hello" > $null

證明:運行PowerShell的分詞對的兩段代碼,看看他們如何在內部處理:

[System.Management.Automation.PSParser]::Tokenize('"a" > janice.txt', [ref]$null) | 
    Select-Object Content, Type | 
    Format-List 


Content : a 
Type : String 

Content : > 
Type : Operator 

Content : janice.txt 
Type : CommandArgument 

一個重定向操作,與左側的字符串和右側的命令參數。比。

[System.Management.Automation.PSParser]::Tokenize('"a" > $i.txt', [ref]$null) | 
    Select-Object Content, Type | 
    Format-List 


Content : a 
Type : String 

Content : > 
Type : Operator 

Content : i 
Type : Variable 

Content : . 
Type : Operator 

Content : txt 
Type : Member 

的字符串和重定向操作,與在右側(一個變量,所述操作者.和「TXT」作爲成員)。

+0

所以我基本上只是在null !非常感謝,我將深入閱讀這個答案,很多很好的信息。再次感謝!!!! –

+0

知道診斷的好方法! –

相關問題