[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 求助完善“删除或者替换当前目录下所有文件夹名称中的指定字符串”批处理代码

本帖最后由 pcl_test 于 2016-4-8 21:32 编辑
  1. set find_string=
  2. set /p find_string=输入要查找的字符串:
  3. if not defined find_string echo 未输入需要查找的字符串! & goto loop1
  4. set replace_string=
  5. set /p replace_string=输入替换后的字符串:
  6. for /f "delims="  %%a in ('dir /b /a-d /ad') do (
  7. set "str=%%~na"
  8. setlocal enabledelayedexpansion
  9. for %%i in ( "!str:%find_string%=%replace_string%!") do (
  10.         endlocal
  11.         rename "%%a" "%%~i%%~xa"
  12. )
  13. )
复制代码
上述代码在当前文件夹目录名称中存在.或者!时无法正常进行,求完善,多谢。

  1. @if (0)==(0) echo off
  2. set "替换前=ABC"
  3. set "替换后=123"
  4. for /f "tokens=1*delims=/" %%i in ('dir /b /ad /s^|sort /r^|cscript //nologo //e:jscript "%~0" "%替换前%" "%替换后%"')do (
  5.     ren "%%j" "%%i"
  6. )2>nul
  7. pause & exit
  8. @end
  9. var arg = WSH.Arguments;
  10. var reg = new RegExp(arg(0).replace(/[\^$(){}\[\]+\-.]/g, '\\$&'), 'ig');
  11. var str = WSH.StdIn.ReadAll().replace(
  12.     /.+\\(.+)\r\n/g,
  13.     function(s0, s1){
  14.         if (reg.test(s1)) return s1.replace(reg, arg(1)) + '/' + s0;
  15.     }
  16. )
  17. WSH.Echo(str)
复制代码

TOP

本帖最后由 pcl_test 于 2016-4-8 23:07 编辑
  1. //&cls&dir /ad /b /s|sort /r|cscript -nologo -e:jscript "%~f0" "查找的字符串" "替换后的字符串"&pause&exit
  2. //如果未指定“替换后的字符串”,则为删除/去除“查找的字符串”
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. try{
  5.     var astr = WScript.Arguments(0), bstr = WScript.Arguments(1);
  6. }
  7. catch(e){
  8.     try{
  9.         var astr = WScript.Arguments(0), bstr = '';
  10.     }catch(e){}
  11. }
  12. while(!WScript.StdIn.AtEndOfStream){
  13.     var fd = fso.GetFolder(WScript.StdIn.ReadLine());
  14.     var fn = fd.Name;
  15.     try{
  16.         while(fn.indexOf(astr)>-1){
  17.             var fn = fn.replace(astr, bstr);
  18.         }
  19.     fd.Name = fn;
  20.     }catch(e){}
  21. }
复制代码

TOP

本帖最后由 happy886rr 于 2016-4-9 00:02 编辑
  1. 未输入需要查找的字符串!
  2. @echo off&cls
  3. set/p st1=查找的字:
  4. if not defined st1 (sort %0|more +12&goto loop1)
  5. set/p st2=替换的字:
  6. if not defined st2 (sort %0|more +12&goto loop1)
  7. for /f "delims=" %%a in ('dir /ad /b /s^|sort /r') do (
  8. set "str=%%~na"
  9. call,set "str=%%str:%st1%=%st2%%%"
  10.         call,rename "%%a" "%%str%%%%~xa"
  11. )
  12. :loop1
  13. set/p=这里是 loop1^_^&&set/p=
复制代码
回复 1# lijinan

TOP

返回列表