如何在替换多个字符时重命名文件

时间:2015-09-21 20:48:08

标签: powershell

我尝试每隔15分钟扫描一个文件夹并将新文件发送到SFTP服务器。有时文件会带有[和]文件名,SFTP命令不会将它发送到服务器,所以我想我可以用'('和')代替'['和']'分别。以下是我的相关代码。

foreach($file in $files)
{
    if($file.PSIsContainer -eq $false)
    {
        #$file.FullName;
        #$file.Name; 
        if ($file.Name.Contains("[") -and $file.Name.Contains("]"))
        { 
            $file.FullName;
            $file.Name.Replace("[","(")
            $file.Name.Replace("]",")")
            #$Rename-Item $NewName {$file.Name -replace "[", "("}
        }

我已经看到Rename-Item $NewName {$file.Name -replace "[", "("}有效,但只能更改文件的1个字符。在我的情况下,我需要进行2次更改。我目前无法在网上找到有人试图替换文件的2个字符并重命名的地方。

这就是我想要做的。 Text[1].txt -> Text(1).txt

1 个答案:

答案 0 :(得分:1)

您可以链接-replace命令。使用它:

$file.Name -replace "\[", "(" -replace "\]", ")"