求一个可以批量修改子文件夹里文件名称的bat
发布网友
发布时间:2022-02-23 00:28
我来回答
共2个回答
热心网友
时间:2022-02-23 01:57
不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起运行
<# :
cls
@echo off
rem 将多个子文件夹里的的文件按照资源管理器里原有的顺序以其所在的文件夹名称重命名
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path=$args[0];
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir
{
[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)
{
Array.Sort(f, StrCmpLogicalW);
return f;
}
}
'@;
Add-Type -TypeDefinition $codes
$folders=@(dir -liter $path|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
write-host ('------------'+$folders[$i].Name+'------------');
$files=@(dir -liter $folders[$i].FullName|?{$_ -is [System.IO.FileInfo]}|%{$_.Name});
if($files.length -ge 1){
$list=[ExpDir]::Sort($files);
for($j=0;$j -lt $list.count;$j++){
$ext='';
$m=[regex]::match($list[$j], '\.[^\.]+$');
if($m.Success){$ext=$m.groups[0].value;};
$newname=$folders[$i].Name+$ext;
if($j -ge 1){$newname=$folders[$i].Name+' ('+($j+1).toString()+')'+$ext;};
write-host ($list[$j]+' --> '+$newname);
};
};
}
热心网友
时间:2022-02-23 03:15
@echo off
for /f "tokens=*" %%i in ('dir/b/ad') do (
set n=0
for /f "tokens=*" %%j in ('dir/b/a-d/od "%%i\"') do (
set /a n+=1
move "%%i/%%j" "%%i/%%i!n!%%~xi"))追问运行以后显示系统找不到指定路径
追答批处理有个多个文件夹的那个文件夹里。
求一个能批量识别并修改文件名的bat批处理。
echoofffor/f"delims="%%ain('dir/a-d/b/s')do(setstr=%%~nasetlocalenabledelayedexpansionset"pre=!str:~0,6!"ren"%%a""!pre!%%~xa"endlocal)用dir/a-d/b/s显示所有子文件夹的文件名不就得了
求一个bat命令,批量修改文件名 比如把“nEO_IMG_JJ010-A.jpg”修改...
echo off setlocal set /p oldname=请输入老名字:set /p newname=请输入新名字:set /p wildcard=请输入文件名通配符列表(缺省为所有文件,即“*”):for /f "usebackq delims=" %%i in (`dir /s/b/a-d %wildcard%`) do (setlocal enabledelayedexpansion set var=%%~nxi set "var=...
怎么用bat批量重命名文件夹名
1. **打开记事本或任何文本编辑器**:首先,你需要打开记事本(Notepad)或你选择的任何文本编辑器来编写BAT脚本。2. **编写BAT脚本**:在记事本中输入以下示例脚本,用于将指定目录下所有文件夹的名称前添加"Prefix_"前缀。请将`C:\path\to\your\folders`替换为你的目标文件夹路径。```batch ech...
bat批量修改命名,包括子文件夹里的文件?
rem 将多个子文件夹里的多个指定名称的文件分别重命名成不同的新名称 mode con lines=3000 set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4 title %#% +%$%%$%/%@% %z cd /d "%~dp0"for /r /d %%a in (*) do (pushd "%%a"for %%b in ("B6.jpg|A1.JPG""B5...
求bat处理命令:批量修改当前目录下所有子目录下的所有txt文件名
echo offfor /f "delims=" %%a in ('dir /s/b/a-d *.txt') do ( for /f "tokens=2 delims=_" %%b in ("%%~na") do ren "%%a" "%%b.txt" )
bat批量修改命名,包括子文件夹里的文件
echo off for /r /d %%a in (*) do (pushd "%%~a"ren JPG00000.jpg 张三00001.jpg ren JPG00001.jpg 张三00002.jpg ren JPG00002.jpg 张三00003.jpg ren JPG00003.jpg 李四00001.jpg ren JPG00004.jpg 李四00002.jpg ren JPG00005.jpg 李四00003.jpg popd )pause ...
批处理BAT。修改指定文件夹(带目录)下的文件名称(单一的和批量的)
4. 知道文件名比如(*\111\222.txt)盘符不知道,自动搜索并修改为333.txt echo off for %%i in (c d e f g h) do (cd /d %%i:\ echo 搜索%%i盘...rem 搜索111文件夹 for /f %%j in ('dir /s /b /a:d *111') do (if "%%~nj"=="111" (if exist %%j\222.txt (ech...
bat批量重命名(指定替换字符)
1、电脑打开要重命名的文件,然后新建TXT文档。2、打开新建的TXT文档后,输入字符 set a=1000 setlocal EnableDelayedExpansion FOR /f "tokens=*" %%i IN ('dir /a:d /b') DO (set /A a+=1 ren "%%i" "电影!a!")1000和电影是可以更改的。3、保存TXT后,把后缀改为bat,然后点击是。...
求一个批量修改文件名的bat
echo off for %%a in (*.zip) do (ren "%%a" "%%~na.osz")pause 放到需要改名的ZIP文件同级目录运行,就会将所有ZIP改成OSZ
求BAT或者VBS脚本,批量重命名一个文件夹下面的文件为0001 、0002、0003...
"ren "%%~i" "!name!%%~xi"rem 如果不想保留扩展名则把上一句改成:ren "%%~i" "!name!")echo All Done pause & exit 楼上的虽然是九级。。但是我的代码兼容任意扩展名。。还请lz测试后再做决定。而且ls的cd在别的盘符不管用(如果批处理在c:盘,而目标文件夹在d:盘则cd不过去)...