我尝试每隔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
答案 0 :(得分:1)
您可以链接-replace
命令。使用它:
$file.Name -replace "\[", "(" -replace "\]", ")"