相关疑难解决方法(0)

如果文件名存在,则重命名项和覆盖

我正在尝试使用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过滤a​​ny index.*.txt并将它们重命名为*.txt,如果存在相同的文件,则替换它.

感谢你们

powershell foreach-loop-container powershell-4.0

25
推荐指数
2
解决办法
4万
查看次数

在Powershell中递归重命名文件

调用此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)

powershell

9
推荐指数
2
解决办法
8705
查看次数