[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
桌面广告?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=:" %%i in ('findstr /N .* BGlist.txt') do (
  4.      set /a num=%%~i
  5.      set /a num=%random%%%!num!+1
  6.      if "!num!" == "%%i" set stt=%%~j
  7.                                                                    )
  8. for /f "delims=" %%a in (Flist.txt) do (
  9.        set str=%%a
  10.        call md !str! 1>nul 2>nul
  11.        >!str!\desktop.ini echo [{be098140-a513-11d0-a3a4-00c04fd706ec}]
  12.        >>!str!\desktop.ini echo iconarea_image="!stt!"
  13.                                        )
  14. echo !stt!
  15. findstr /v "\<!stt!\>" BGlist.txt >>tmp_.txt
  16. del BGlist.txt
  17. ren tmp_.txt BGlist.txt
  18. pause
复制代码
这样应该可以了,但是没有添加循环。
心得:
1.刚开始测试的时候,findstr /v "\<!stt!\>" BGlist.txt >>tmp_.txt是写成这样findstr /v "!stt!" BGlist.txt >>tmp_.txt,导致运行一次,生成的tmp_.txt是0字节文本,BGlist.txt也直接变成0字节文本了。可能是D:\bg\Photos\1 (4).png中间有空格,然后把含有D:\bg\Photos\1的所有行去掉,这样的话整个BGlist.txt就直接没有剩下的行了。
2.
>!str!\desktop.ini echo [{be098140-a513-11d0-a3a4-00c04fd706ec}]这里这样写其实是因为我不会输出两行,别人的那个换行输出帖子我还没整明白,因为他那个代码我这测试时没换行的。你这第一行是固定不变的,我就直接用>来写,保证每次循环的时候dekstop.ini的内容不多不少, 刚好够

[ 本帖最后由 sgaizxt001 于 2010-4-20 04:47 编辑 ]

TOP

返回列表