繁体   English   中英

使用输出运算符在powershell中命名.txt文件

[英]Naming a .txt file in powershell using output operator

我正在尝试创建一个变量,它将使用powershell中的输出运算符命名文本文件。 第一个例子是通常在没有变量(有效)的情况下完成的事情,第二个例子是我尝试这样做的方式(它不起作用)。

例I:

"hello" >> janice.txt

我们可以看到,示例I的结果将是一个名为janice.txt的文本文件

例II。

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

我期望从示例II得到的结果将是一个名为:janice.txt的文本文件,就像第一个示例一样,因为变量$ i存储字符串“janice”。

Powershell正在执行命令而没有错误,但没有创建.txt文件。 我试图弄清楚为什么它不起作用,如果有的话,它是完全无关紧要的。

这是我第一次提出问题,所以如果它是罗嗦而且含糊不清,我会事先道歉。

别人向我指出之后显而易见; $i.txt正在进行属性查找。 $i.Length$file.FullName

由于没有名为.txt属性,因此查找返回$null并且您的写入无处可执行"hello" > $null

证明:针对这两段代码运行PowerShell tokenizer,以了解它们在内部的处理方式:

[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'作为成员)。

尝试这个:

"hello" >> "$i.txt"

:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM