用于批量重命名一个文件夹中的文件的 PS 命令确实适用于其中没有一对方括号的所有文件,但如果文件名包含一个方括号则永远不会。如果名称中有一个或多个右方括号,它也可以工作,但任何数量的左方括号都会导致错误。
错误注释:rni : Impossible de renommer l'élément situé à l'emplacement « C:\Users\X\documents\dossier\machine[3].txt », car il n'existe pas。
翻译_rni:无法重命名在« C:\Users\X\documents\dossier\machine[3].txt »中找到的元素,因为它不存在。
这是命令的代码;
$dos1=(ls C:\Users\X\documents\dos1).name
foreach ($fic in $dos1)
{rni C:\Users\X\documents\dos1\$fic §§$fic}
用户PetSerAI的插入“-LiteralPath”的建议适用于当前情况;
$dos1=(ls C:\Users\X\documents\dos1).name
foreach ($fic in $dos1)
{rni -literalpath C:\Users\X\documents\dos1\$fic §§$fic}
然而,对于更复杂的代码,同样的问题会再次出现;“-LiteralPath”在下面的代码中没有预期的效果;
$dos1=(ls C:\Users\X\documents\dos1).name
$dos2=(ls C:\Users\X\documents\dos2).name
foreach ($fic2 in $dos2) {foreach ($fic1 in $dos1)
{if ("$fic1" -match "$fic2") {rni -literalpath C:\Users\X\documents\dos1\$fic1 §§$fic1}}}
更糟糕的是,至少有一对不同的名称会发生重命名:
“ §§§§§§§§机器 5.txt ”,“机器 5.txt ”。
有没有办法在没有太多额外编码的情况下完成这项工作?