Powershell递归地重命名特殊目录

时间:2017-10-06 11:13:23

标签: windows powershell explorer

我有这个文件夹结构

C:\用户\ MYUSER \桌面 包括名为

的文件夹
  • BL-100
  • BL-105
  • BL-108

依旧...... 大多数BL文件夹存储file.xml,但不是全部。

所以在桌面上有很多文件夹以BL-开头,而且最多但并非全部存储文件。

现在我想搜索所有以BL-开头的文件夹并存储file.xml并将这些文件夹重命名为RG-100,RG-105,RG-108等等

目前我收到了这个剧本:

# insmod hello.ko

# dmesg | tail -1
Hello world!

# rmmod hello.ko

# dmesg | tail -1
Cleaning up module.

这不起作用,并向我显示错误:异常调用"子串"用" 2"参数:"索引和长度必须指向字符串中的位置。参数名称:长度"

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您看到的错误是因为SubString由于某种原因失败了。最可能的原因是如果字符串不够长;例如如果你有一个长度为1个字符的文件夹。要查看我的意思,请尝试运行:'1'.Substring(0,2)

为避免这种情况,您可以使用like运算符。 e.g。

foreach($Directory in (
    Get-ChildItem -LiteralPath 'C:\Users\myUser\Desktop' -Recurse `
    | Where-Object{($_.Name -like 'BL-*')}
)){
    #...
}

答案 1 :(得分:0)

就这样做:

Get-ChildItem "C:\Users\myuser\Desktop" -directory -Filter "BL-*"