使用PowerShell复制文件并将其重命名为文本文件每行的内容

使用PowerShell复制文件并将其重命名为文本文件每行的内容

我正在尝试在 PowerShell 中执行这个看似简单的过程。我只想复制文件“test1.png”并重命名它,从文本文件 (test.txt) 的每一行中获取新名称

例如,我的文本文件有:

新名称1.png
新名称2.png
新名称3.png
新名称4.png

我想将文件“test1.png”复制到另一个路径,并用这些名称重命名。我目前正在使用这个:

Get-Content n:\test.txt | ForEach-Object { Copy-Item Z:\Old\test1.png -Destination "N:\New Folder\$_" }

但是我收到一个错误:

Copy-Item : The provided format of the path is not supported.
Line: 1 Character: 48
+ ... ch-Object { Copy-Item Z:\Old\test1.png -Destination "N:\New Fol ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand

我对 PS 几乎一无所知,我只是从另一个问题中得到了这个命令,并根据我的需要对其进行了格式化,显然我做错了。我可能也不需要输入“-Destination”。

答案1

您不能将这些 '/,\,|,:,?,<,>,*'放在文件名中,这些不是受支持的文件格式。

要修复该问题,你可以像这样使用替换,例如:如果你想在路径中将“/”替换为“-”,你可以简单地这样做

filepath.Replace("/","-").FileExtendtion 

相关内容