0

我一直在网上寻找一个具体的答案,以更好地帮助我理解这是如何工作的。在 PHP 中,我们使用“.”来连接字符串。但是在powershell中我看到这样的事情:

    Dir | where {$_.extension -eq ".txt"} | 
    Rename-Item –NewName { $_.name –replace “.“,”-” }

我可以看到“Dir”命令通过管道传输到“Where”,但是,我不明白它定义的变量是什么:

    $_.extension

这是向函数添加额外运算符的一种方式吗?我很困惑。我正在好转,但是,我需要知道周期和 $_ 的准确程度。在使用 cmdlet 时工作,而不是什么。

任何帮助表示赞赏。

4

3 回答 3

5

Powershell 包含非常好的帮助文件,可以回答许多问题。

看:

get-help about_operators

你会发现点既可以用作属性解引用运算符,也可以用作作用域运算符,并分别说明了它们的用法。

也可以在 TechNet 上的 about_operators下看到这个

于 2013-10-26T15:11:28.860 回答
2

它是成员访问运算符。$_是一个特殊变量(在这种情况下是循环变量)。因此,$_.extension访问或调用 上的extension属性$_

于 2013-10-26T13:55:40.787 回答
0

DIR命令类似于Get-ChildItem命令。|类似于foreach声明。$_符号表示foreach循环中的每个元素。在您的情况下,代码应该从某个位置获取所有具有扩展名的内容,然后根据规则.txt重命名这些元素中的每一个{ $_.name –replace “.“,”-” }

于 2013-10-26T14:03:52.507 回答