中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 18:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]有无办法随机或顺序获取文件夹内的文件名 查看 877 回复 13
楼 主 [已解决]有无办法随机或顺序获取文件夹内的文件名 发表于 2008-05-22 10:35 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
完整标题:有没有办法随机/顺序获取文件夹内的文件名或完整文件路径,或者从txt列表中获取(txt中当然是每行一个路径或名称)

这个“获取”基本上的意思就是复制到剪贴板。

用脚本或命令行工具?

[ Last edited by tireless on 2008-5-22 at 02:11 PM ]
2 发表于 2008-05-22 10:50 ·  中国 四川 成都 联通
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
3 发表于 2008-05-22 11:00 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
不是复制整个txt,而是随即或顺序复制txt中的其中一行
4 这个不要借第三方工具的: 发表于 2008-05-22 13:39 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
set _!n!=%%i
)
set /a lines=%random%%%%n%+1
echo !_%lines%!
pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
tireless +4 2008-05-22 19:09
批处理之家新域名:www.bathome.net
5 发表于 2008-05-22 17:48 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
谢谢啊,这下可以随机更换壁纸了 可不可以再做个按顺序的?

[ Last edited by tireless on 2008-5-21 at 09:52 PM ]
6 发表于 2008-05-22 18:03 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by tireless at 2008-5-22 17:48:
谢谢啊,这下可以随机更换壁纸了:P 可不可以再做个按顺序的?

[ Last edited by tireless on 2008-5-21 at 09:52 PM ]


@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
set _!n!=%%i
)
:lp
set /a m+=1
cls&echo !_%m%!
if %m% equ %n% set m=0
echo 请按鍵显示下一张
pause>nul
goto lp


[ Last edited by zw19750516 on 2008-5-22 at 06:11 PM ]
批处理之家新域名:www.bathome.net
7 发表于 2008-05-22 18:40 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@6 楼
呃~在哪个位置输出?(不要提示)

以下命令要放在哪个地方?
"D:\Program Files\IrfanView\i_view32.exe" !_%m%! /wall=2 /killmesoftly
8 发表于 2008-05-22 22:24 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
10秒换一张:

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
set _!n!=%%i
)
:lp
set /a m+=1
start "" "D:\Program Files\IrfanView\i_view32.exe" !_%m%! /wall=2 /killmesoftly
if %m% equ %n% set m=0
ping /n 11 127.1>nul&goto lp


[ Last edited by zw19750516 on 2008-5-22 at 10:26 PM ]
批处理之家新域名:www.bathome.net
9 发表于 2008-05-23 08:09 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@8 楼
不错。试了,有用。。。如何去掉时间?我是用快捷键来更改的。

[ Last edited by tireless on 2008-5-22 at 12:13 PM ]
10 发表于 2008-05-23 08:36 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
批处理怎么用快捷鍵啊
批处理之家新域名:www.bathome.net
11 发表于 2008-05-23 08:58 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
Originally posted by zw19750516 at 2008-5-22 12:36 PM:
批处理怎么用快捷鍵啊

不是,我是为这个批处理创建个快捷方式,再设置个快捷键。

...我好像明白了,批处理做不到每次运行都顺序选择下一行,只可以在一次运行中顺序选择,或者在每次运行中随机选择,是吗?
12 发表于 2008-05-23 09:20 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by tireless at 2008-5-23 08:58 AM:

不是,我是为这个批处理创建个快捷方式,再设置个快捷键。

...我好像明白了,批处理做不到每次运行都顺序选择下一行,只可以在一次运行中顺序选择,或者在每次运行中随机选择,是吗?

可以在每次运行的时候都向注册表里面写入一个记录
运行之前先去读取这个记录
这样就知道下次运行该选择哪一行了
13 发表于 2008-05-23 10:01 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
要做到每次也不是不可以,请楼主参考我这个贴子:http://www.cn-dos.net/forum/viewthread.php?tid=38855&fpage=1&highlight=%2Bzw19750516
批处理之家新域名:www.bathome.net
14 发表于 2008-05-23 10:04 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
就用随机吧。多谢大家的帮助。

[ Last edited by tireless on 2008-5-22 at 02:09 PM ]
论坛跳转: