当前位置 : 主页 > 手机开发 > 无线 >

powershell – 使用switch语句将文件移动到基​​于部分文件名的现有子文件夹中以

来源:互联网 收集:自由互联 发布时间:2021-06-10
我有一个文件夹,里面装满了一堆日志文件,需要经常移动到子文件夹中.例如,我需要将以下文件放入箭头的目录中. SOME_FILE_341213.txt – SMPROD SOME_FILE_341242.txt – SMPROD OTHER_FILE_13423.log – S
我有一个文件夹,里面装满了一堆日志文件,需要经常移动到子文件夹中.例如,我需要将以下文件放入箭头的目录中.

SOME_FILE_341213.txt – > SMPROD
SOME_FILE_341242.txt – > SMPROD
OTHER_FILE_13423.log – > SSBRPRD
ALTER_FILE_13423.log – > SSBRPRD
geofile12321 – > REGIONPROD

我已经看到很多解决方案将解析文件名的一部分并将其移动到包含文件名解析的目录中.在我的例子中,目标目录不会真正匹配文件名的解析部分.我以为我可以使用switch语句将前4或5个字母与将文件移动到相应目录中的情况相匹配,但我不确定这是最有效的方法.我会有大约25个案例来匹配.对于任何情况都不匹配的文件,我会将它们保留在原来的位置.有什么建议?

我会在for-each循环中使用switch语句.像这样的东西:

$Files = Dir c:\test

foreach ($file in $files) {
    switch ($file.ToString().Substring(0,2)) {
        "te" {Write-Host "te"; break}
        "li" {Write-Host "li"; break}
        "ts" {Write-Host "ts"; break}

    } #End switch
} #End foreach

在substring(x,y)命令中,重载是:

> x =起始字符
> y =要拉动的字符数

显然用你真正想做的事情替换写主机. switch语句可以跨越多行.不要忘记最后的中断,所以你不要为每个文件都经过所有25个选项.

网友评论