
求一個能對文件批量重名的批處理文件我需要一個能把文件夾中的文件及子文件夾中的文件批量重命名的bat文件。重命名規則為在文件名的每個字符前添加一個@,需要把文件夾里面的文件、文件夾、及子文件都重命名。之前別人給我寫過一個bat,但是只能把第一個文件重命名。各位大神高手們能幫忙把這個bat改為能對文件夾里面的文件、文件夾、及子文件都重命名嗎?非常感謝。下面是只能把第一個文件改名的bat的代碼
nclick="copycode($('code0'));">復制代碼
- <# :
- cls&echo off&cd /d %~dp0&mode con lines=5000
- rem 在當前目錄里的文件名稱的每一個字符前面添加/插入一個指定字符
- set #=Any question
- title %#% +%$%%$%/%_% %z%
- set self=%~f0
- powershell -NoProfile -ExecutionPolicy bypass Get-Content -literal '%~f0'|Out-String|Invoke-expression
- echo;%#% +%$%%$%/%_% %z%
- pause
- exit
- #>
- $addword=&;
- $self=get-item -literal $env:self;
- $current=$self.Directory.FullName;
- $files=@(dir -literal $current|?{($self.Name -ne $_.Name) -and ($_ -is [System.IO.FileInfo])});
- if($files.length -ge 1){
- $base=[regex]::replace($files[0].baseName, 'S', {
- param($m);
- return $addword+$m.groups[0].value;
- });
- $newname=$base+$files[0].Extension;
- $newfile=$files[0].Directory.FullName+''+$newname;
- write-host ($files[0].FullName.Substring($current.length)+' --> '+$newname);
- move-item -literal $files[0].FullName$newfile -force -ErrorAction SilentlyContinue;
- }

