我正在尝试使用Rename-Itemcmdlet执行以下操作:
我有包含" *.txt "文件的文件夹.比方说1.txt,2.txt等......
我想复制具有一些前缀的文件,将它们重命名为*.txt并覆盖任何现有文件(如果有的话).
例:
文件夹:c:\ TEST
files:1.txt,2.txt,3.txt,4.txt,5.txt,index.1.txt,index.2.txt,index.3.txt,index.4.txt,index.5.文本
我想使用rename-item过滤any index.*.txt并将它们重命名为*.txt,如果存在相同的文件,则替换它.
感谢你们
调用此powershell命令并收到错误.使我抓狂.
Prompt> get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like
"*NYCSCA*" } | rename-item $_ -newname $_.Name.Replace(" ","_") -whatif
Run Code Online (Sandbox Code Playgroud)
以下是回复:
You cannot call a method on a null-valued expression.
At line:1 char:140
+ get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like "*NYCSCA*" } | select FullName | rename-item $_ -n
ewname $_.Name.Replace <<<< (" ","_") -whatif
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Run Code Online (Sandbox Code Playgroud)
如果我删除最后一部分,我会得到一个文件列表.有线索吗?显然,我还没有讨论过powershell.
注意:我试图将此发布给超级用户,但该网站现在一直都失败了 - 不会让我添加这个确切的问题.
这里大大简化了.我甚至无法得到这个经典的例子.
gci *NYCSCA* | ren $_ ($_.Name).Replace("foo","bar") …Run Code Online (Sandbox Code Playgroud)