以文本方式查看主题

-  乾龙盛产品用户交流区  (http://qls-hifi.com/bbs/index.asp)
--  QLS-HiFi产品及技术相关  (http://qls-hifi.com/bbs/list.asp?boardid=2)
----  QA350适用的批量给所有wav文件加前缀的powershell脚本  (http://qls-hifi.com/bbs/dispbbs.asp?boardid=2&id=797)

--  作者:fzinfz
--  发布时间:2010-12-16 20:35:03
--  QA350适用的批量给所有wav文件加前缀的powershell脚本
QA350文件不支持中文, 文件夹名显示时间太短,听歌到一半想看文件夹,所以写了个批量给wav文件加文件夹前缀的脚本,不敢独享^_^

作用:把指定文件夹下的所有一级文件夹下的所有wav文件加上 "文件夹名_" 前缀 (实际使用用到前2/3个字符)

用法:(win7/2008默认支持powershell,xp要装补丁; 不提供后续支持,有问题自己研究哈~)
文件夹至少前两个字符是英文,不然下面也没必要了。。。
1. windows开始菜单打开powershell ISE,复制脚本到最上面窗口,按F5
或者
2. 保存成 .ps1 文件,右键选运行为powershell

重命名:

$path = Read-Host "根文件夹路径(比如: E:\\ 或者 D:\\Music ) "
pushd $path;
dir  |
foreach{
    $type = $_.GetType();
    if($type -match "DirectoryInfo"){
        $subFolder =  $_.Name;
        $subFolderFiles = ".\\" + $subFolder + "\\*.wav";
        foreach ( $1 in dir  $subFolderFiles){
            $oldName = ".\\" + $_.Name + "\\" + $1.Name;
            $newName = $subFolder+"_"+$1.Name;
            ren $oldName $newName
        }
    }
}

复原:

$path = Read-Host "根文件夹路径(比如: E:\\ 或者 D:\\Music ) "
pushd $path;
dir  |
foreach{
    $type = $_.GetType();
    if($type -match "DirectoryInfo"){
        $subFolder =  $_.Name;
        $subFolderFiles = ".\\" + $subFolder + "\\*.wav";
        foreach ( $1 in dir  $subFolderFiles){
            $oldName = ".\\" + $_.Name + "\\" + $1.Name;
            $pattern = "^(" + $subFolder + "_)+";
            $newName = $1.Name -replace $pattern, "";
            ren $oldName $newName
        }
    }
}

--  作者:clark
--  发布时间:2010-12-16 22:34:46
--  

非常感谢楼主!