Board logo

标题: [文件操作] 【已解决】求助:批处理文件夹名添加后缀 [打印本页]

作者: lj670    时间: 6 天前 21:32     标题: 【已解决】求助:批处理文件夹名添加后缀

本帖最后由 lj670 于 2024-12-23 00:25 编辑

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

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
复制代码
代码未经测试,请备份好源文件。
作者: aloha20200628    时间: 5 天前 11:33

本帖最后由 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
复制代码

作者: lj670    时间: 前天 00:23

回复 2# qixiaobin0715

脚本运行正常,非常好,谢谢!
作者: lj670    时间: 前天 00:24

回复 3# aloha20200628


    脚本运行正常,达到预期效果,谢谢!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2