Ric*_*ada 2 windows powershell
我正在尝试创建一个变量,它将使用powershell中的输出运算符命名文本文件.第一个例子是通常在没有变量(有效)的情况下完成的事情,第二个例子是我尝试这样做的方式(它不起作用).
例I:
"hello" >> janice.txt
Run Code Online (Sandbox Code Playgroud)
我们可以看到,示例I的结果将是一个名为janice.txt的文本文件
例II.
$i = "janice"
"hello" >> $i.txt
Run Code Online (Sandbox Code Playgroud)
我期望从示例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
Run Code Online (Sandbox Code Playgroud)
重定向运算符,左侧是字符串,右侧是命令参数.比.
[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
Run Code Online (Sandbox Code Playgroud)
字符串和重定向运算符,.右侧是(变量,运算符和'txt'作为成员).
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |