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

[文件操作] 求助:批处理文件夹名添加后缀

bat批处理当前文件夹下根据88.txt文本内容,每行随机乱序给子文件夹名添加后缀(没有孙文件夹),每行文本只添加一个子文件夹不重复添加(文本内容可能有空行),如8行文本就只添加8个子文件夹后缀,子文件夹名例如:20 (1),20 (6),22 (2)等等,文件夹名有空格。
文本内容例如:春天的风,夏天的小鱼,秋天的果实,等等。添加后子文件夹名为:20 (1)夏天的小鱼,20 (6)春天的风,22 (2)秋天的果实。。等等   求助各位大佬,谢谢!

88.txt的行数要小于等于子文件夹数:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /ad') do set _!random!=%%i
  4. set _>temp
  5. (for /f "delims=" %%i in (88.txt) do (
  6.     set /p str=
  7.     for /f "tokens=1* delims==" %%a in ("!str!") do ren "%%b" "%%b%%i"
  8. ))<temp
  9. del temp
  10. pause
复制代码
代码未经测试,请备份好源文件。

TOP

本帖最后由 aloha20200628 于 2024-12-20 11:37 编辑

回复 1# lj670

逐行读取 88.txt 实值数据 xxx,随机且不重复抽取当前目录下的某个子目录,对其更名为 ‘子目录名xxx’,管控实值xxx数量溢出子目录数量的实况...
  1. @echo off &setlocal enabledelayedexpansion
  2. dir /b/ad|findstr /n ".*">"_._" &for /f %%n in ('find /c /v ""^<"_._" ') do (set "n=%%n")
  3. for /f "delims=" %%x in (88.txt) do set/a "k+=1" & if !k! gtr !n! (goto :end) else (
  4.    set/a "r=1+!random!%%!n!" &(call :xxx)
  5.    for /f "tokens=1* delims=:" %%a in ('findstr /bc:"!r!:" "_._" ') do (ren "%%b" "%%~nb%%x%%~xb")
  6. )
  7. :end
  8. del /q "_._" &pause&exit/b
  9. :xxx
  10.    if defined _!r! (set/a "r=1+!random!%%!n!" &goto :xxx)
  11.    set "_!r!=1" &exit/b
复制代码

TOP

返回列表