找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37408|回复: 6

[文本处理] 更换Win7的登录背景的批处理,总是 ,Echo处于关闭状态

[复制链接]
发表于 2017-6-23 10:21:54 | 显示全部楼层 |阅读模式
先上一段批处理代码:
  1. @echo off
  2. echo 此程序是用于,在每次启动Win7时,自动更换Win7的登录背景。它的登录背景的切换,
  3. echo 是基于一组图片进行轮播
  4. echo ----------------------------------------------------------------------
  5. echo 程序思路:Win7文件夹下名字为backgroundDefault.jpg的图片会被当作登录背景图片显示。
  6. echo 程序的主要作用,是在那一组图片中,适当的修改每个图片的名称,
  7. echo 从而实现每次开机的登录界面都不相同
  8. echo -----------------------------------------------------------------------
  9. rem 程序开始

  10. setlocal enabledelayedexpansion

  11. rem 先将L序号的文件名的文件中的序号全部加1
  12. rem 声明一个变量,获取当前L之后的序号

  13. set next = this is a string
  14. set picName = this is also string

  15. pause

  16. rem 统计L开头的文件的个数
  17. set sum = 0

  18. rem 循环求和 L开头的文件的数量

  19. for %%x in (L*.jpg) do (
  20. set picName = %%x
  21. echo %picName%
  22. pause

  23. set next = %picName:~1,1%

  24. echo %next%
  25. pause

  26. rem 重命名文件
  27. ren "%%x" % %%x:%%x:~1,1%=next%

  28. echo % %%x:%%x:~1,1%=next%
  29. pause

  30. set sum=sum+1
  31. )

  32. rem 再将 backgroundDefault.jpg 图片的名称改为“L”加1

  33. ren "backgroundDefault.jpg" "L1"

  34. rem 最后将L(Max),改为backgroundDefault.jpg

  35. ren "L"+%sum% "backgroundDefault.jpg"

  36. echo "L"+%sum%
  37. pause
复制代码
这里面,在 Set 后面,如果加上 “/p”,就会少出这个“Echo处于关闭状态”的错误提示。 但是,里面的字符串截取的地方,不能正常的截取(截取到的结果是 "~1,1",好奇怪啊),再把截取到的结果输出之后,还会出现“Echo处于关闭状态”的错误。
向来好多办法都不行,希望大神指点!
发表于 2017-6-23 11:00:33 | 显示全部楼层
set命令里面等号两边不要有空格
 楼主| 发表于 2017-6-23 14:25:46 | 显示全部楼层
回复 2# Batcher
非常的感谢,你的回答,我现在终于把这个程序写好了
 楼主| 发表于 2017-6-23 15:40:39 | 显示全部楼层
回复 2# Batcher
可惜,我写的这个程序,在普通的文件夹里,能够正常执行,但是到了,系统文件夹的时候就一闪而过。我也知道是权限的问题,可是,无论怎么改,都没有办法启动运行,不知道可不可以解答一下啊
 楼主| 发表于 2017-6-23 15:42:45 | 显示全部楼层
回复 2# Batcher
还是看一下,我最终的成果吧:
  1. @echo off
  2. echo 此程序是用于,在每次启动Win7时,自动更换Win7的登录背景。它的登录背景的切换,
  3. echo 是基于一组图片进行轮播
  4. echo ----------------------------------------------------------------------
  5. echo 程序思路:Win7文件夹下名字为backgroundDefault.jpg的图片会被当作登录背景图片显示。
  6. echo 程序的主要作用,是在那一组图片中,适当的修改每个图片的名称,
  7. echo 从而实现每次开机的登录界面都不相同
  8. echo -----------------------------------------------------------------------
  9. rem 程序开始

  10. setlocal enabledelayedexpansion

  11. rem 先将最小序号的L(min),改为backgroundDefault.jpg

  12. rem 前提是不能存在同名的改后的文件的结果,因此

  13. ren "backgroundDefault.jpg" "backgroundDefault"

  14. ren "L1.jpg" "backgroundDefault.jpg"

  15. rem 声明一个变量,获取当前L之后的序号
  16. rem set picName=this is

  17. rem pause

  18. rem 统计L开头的文件的个数(应当多个1出来)
  19. set /a sum=1

  20. rem 循环求和 L开头的文件的数量

  21. for %%x in (L*.jpg) do (
  22. set picName=%%x
  23. rem echo !picName!

  24. rem pause

  25. set next=!picName:~1,1!
  26. set /a next=next-1
  27. rem echo !next!
  28. rem pause

  29. rem 重命名文件
  30. ren !picName! "L"!next!".jpg"

  31. rem echo L!next!.jpg
  32. rem pause

  33. set /a sum=sum+1
  34. )

  35. rem 最后将backgroundDefault,改为backgroundDefault.jpg

  36. ren "backgroundDefault" "L"!sum!".jpg"

  37. rem pause
复制代码
发表于 2017-6-23 17:16:52 | 显示全部楼层
回复 5# batCatDat
代码非常啰嗦,你OEM键值开启没。
  1. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background]
  2. "OEMBackground"=dword:00000001
复制代码
 楼主| 发表于 2017-6-24 09:06:57 | 显示全部楼层
回复 6# happy886rr
那个OEM键值开了的,现在手动可以更改登陆界面的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:27 , Processed in 0.019215 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表