Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell文件重命名和反问题_Powershell_Rename_Counter - Fatal编程技术网

PowerShell文件重命名和反问题

PowerShell文件重命名和反问题,powershell,rename,counter,Powershell,Rename,Counter,我制作了一个非常简单的ps1脚本,用一个“ID”号重命名我的txt文件,如 Card.321.txt 这适用于简单的线,但我需要大量的线重命名,所以我需要一些不同的东西 $i = 1 Get-ChildItem *.txt | %{Rename-Item $_ -NewName ('Card.{0:D3}.txt' -f $i++)} 但只有在没有其他名为Card.xxx.txt的文件时,我才能正确运行它 每天我都会收到一个新文件,在它被重命名后,我会将它存储在一个归档文件夹中 如何制作一个

我制作了一个非常简单的ps1脚本,用一个“ID”号重命名我的txt文件,如

Card.321.txt
这适用于简单的线,但我需要大量的线重命名,所以我需要一些不同的东西

$i = 1
Get-ChildItem *.txt | %{Rename-Item $_ -NewName ('Card.{0:D3}.txt' -f $i++)}
但只有在没有其他名为
Card.xxx.txt的文件时,我才能正确运行它
每天我都会收到一个新文件,在它被重命名后,我会将它存储在一个归档文件夹中

如何制作一个不尝试执行大规模重命名任务的脚本

我需要一个计数器,可以继续从昨天的任务执行相同的脚本

Card.321.txt
Card.322.txt
Card.323.txt
Card.324.txt
Card.325.txt
ToDaysFiledToBeRenamed.txt

像这样的怎么样。不是最有效的,但应该易于阅读

$thePath=“C:\temp”
$allTXTFiles=获取子项$thePath*.txt
$filestobernamed=$allTXTFiles |其中对象{$\.BaseName-不匹配“^Card”。\d{3}$”}
$highestNumber=$allTXTFiles |其中对象{$\.BaseName-匹配“^Card\。{3}$”}
ForEach对象{[int]($\.BaseName-split“\”[-1]}
测量对象-最大值|选择对象-最大值
$filestoberenamed | ForEach对象{重命名项$\-NewName('Card.{0:D3}.txt'-f$highestNumber++)}
收集所有文件并将其分成两组。使用
$allTXTFiles
我们过滤所有具有“卡片”命名约定的文件,并解析出编号。在这些数字中,确定当前最高的一个为
$highestNumber

然后,我们将剩余的文件作为
$filestobernamed
,并使用
$highestNumber
作为索引,将它们放入
重命名项
代码段中

已知注意事项


如果存在编号高于999的文件,则此操作将不正确。它将允许创建一个,但它目前我只寻找3位数字的文件。我们可以将其改为
^Card\。\d+$
。取决于你想要什么样的逻辑

需要重命名的文件。它们有何不同?只是它们不是Card.XXX.txt,它们可能不是别的吗?文件唯一不同的是编号,Card.326.txt,明天将是Card.327.txt,周五需要重命名为Card.328.txt。文件的名称完全不同,然后进入导出文件夹。存储文件夹保存从Card.001.txt到现在名为Card.326.txt的文件,mass renmae脚本不喜欢这些文件,因为文件夹中的文件已经命名为Card.xxx.txt,所以我需要一个脚本,可以计算这些文件,只需重命名新文件,而不尝试重命名所有文件。非常感谢您的帮助:)@wdac如果这回答了您的问题问题请考虑使用这个绿色标签旁边的回答这个职位。欢迎来到SO