标题: [文件操作] 【已解决】求助:批处理文件夹名添加后缀 [打印本页]
作者: 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的行数要小于等于子文件夹数:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad') do set _!random!=%%i
- set _>temp
- (for /f "delims=" %%i in (88.txt) do (
- set /p str=
- for /f "tokens=1* delims==" %%a in ("!str!") do ren "%%b" "%%b%%i"
- ))<temp
- del temp
- pause
复制代码
代码未经测试,请备份好源文件。
作者: aloha20200628 时间: 5 天前 11:33
本帖最后由 aloha20200628 于 2024-12-20 11:37 编辑
回复 1# lj670
逐行读取 88.txt 实值数据 xxx,随机且不重复抽取当前目录下的某个子目录,对其更名为 ‘子目录名xxx’,管控实值xxx数量溢出子目录数量的实况...- @echo off &setlocal enabledelayedexpansion
- dir /b/ad|findstr /n ".*">"_._" &for /f %%n in ('find /c /v ""^<"_._" ') do (set "n=%%n")
- for /f "delims=" %%x in (88.txt) do set/a "k+=1" & if !k! gtr !n! (goto :end) else (
- set/a "r=1+!random!%%!n!" &(call :xxx)
- for /f "tokens=1* delims=:" %%a in ('findstr /bc:"!r!:" "_._" ') do (ren "%%b" "%%~nb%%x%%~xb")
- )
- :end
- del /q "_._" &pause&exit/b
- :xxx
- if defined _!r! (set/a "r=1+!random!%%!n!" &goto :xxx)
- set "_!r!=1" &exit/b
复制代码
作者: lj670 时间: 前天 00:23
回复 2# qixiaobin0715
脚本运行正常,非常好,谢谢!
作者: lj670 时间: 前天 00:24
回复 3# aloha20200628
脚本运行正常,达到预期效果,谢谢!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |