0

我需要对以下 Powershell 脚本进行更改,但我有一段时间让生成的文件写入不同的路径......让我们称之为$destPath

考虑:

Get-ChildItem $sourcePath | % { [system.io.file]::Move($_.fullname, ($_.FullName -replace '\[|\]|-|,|\(|\)', '') ) }

根据我对move语法的理解,$_.fullname是我的原始文件,并且$_.FullName -replace...是新文件名。但是,当我尝试使用时,$destPath.FullName -replace我得到一个空文件名不合法的错误。显然,Powershell 没有将其识别为move命令的有效路径名。

我错过了什么?

4

1 回答 1

1

由于您没有在上下文中提及 $destPath - 也许您根本没有定义变量 $destPath ?这不太可能,但只是试图缩小范围。

使这项工作的另一种方法:

首先在原始位置重命名子项。然后移动它们。

get-childitem *.txt | rename-item -newname {$_.name -replace 'o','O'}

get-childitem *.txt | % {move-item -path $_.fullname -destination .\Test-files}

但我更喜欢你的一个班轮:)

于 2013-06-18T22:44:22.263 回答