[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. :loop
  3. set str=%random%%random%%random%
  4. if exist "htox32c.exe" (
  5. ren "htox32c.exe" "htox32c%str%.exe" 2>nul
  6. )
  7. if exist "htox32c%str%.exe" (
  8. "htox32c%str%.exe" /IP /O0 /U1+4 2.html
  9. ) else (
  10. timeout 1 >nul
  11. goto :loop
  12. )
  13. ren "htox32c%str%.exe" "htox32c.exe"
复制代码

把exe改个名字,这样可以吗
bat小白,请多指教!谢谢!

TOP

回复 10# hlzj88


   
exe只用一个,只有重命名成功的那个bat会执行操作,操作后会改回原名。然后循环下去。
set 随机数是疏忽了,以前听大佬说,大概是相同时间(可能以秒算),确实会产生相同的随机数,
那就放loop外面,打开bat时间隔1秒,确保3次的随机数不同。
  1. @echo off
  2. set str=%random%%random%%random%
  3. :loop
  4. if exist "d:\htox32c.exe" (
  5. ren "d:\htox32c.exe" "htox32c%str%.exe" 2>nul
  6. )
  7. if exist "d:\htox32c%str%.exe" (
  8. "d:\htox32c%str%.exe" /IP /O0 /U1+4 2.html
  9. ) else (
  10. timeout 1 >nul
  11. goto :loop
  12. )
  13. ren "d:\htox32c%str%.exe" "htox32c.exe"
复制代码



或者用一个bat带参数执行自身。
  1. @echo off
  2. %1 (for %%a in (1 2 3) do (start "" "%~f0" rem %%a))&exit
  3. if "%~2" equ "1" (
  4. pushd "d:\test1"
  5. ) else if "%~2" equ "2" (
  6. pushd "d:\test2"
  7. ) else if "%~2" equ "3" (
  8. pushd "d:\test3"
  9. ) else goto:eof
  10. set str=%~2
  11. :loop
  12. if exist "d:\htox32c.exe" (
  13. ren "d:\htox32c.exe" "htox32c%str%.exe" 2>nul
  14. )
  15. if exist "d:\htox32c%str%.exe" (
  16. "d:\htox32c%str%.exe" /IP /O0 /U1+4 2.html
  17. ) else (
  18. timeout 1 >nul
  19. goto :loop
  20. )
  21. ren "d:\htox32c%str%.exe" "htox32c.exe"
复制代码
bat小白,请多指教!谢谢!

TOP

回复 17# hlzj88


   我觉得你没理解代码的意思,只用一个 exe三个bat 全对这一个 exe 进行改名,即使三个bat同时改名,也应该只会成功一个吧,或者都不成功?反正不会存在,改名后多出一个exe 的情况。然后改名成功的,会执行操作,操作完毕改回原名,其它bat判断到存在原名的exe又会改名,这个我觉得100%不会存在两个exe同时操作的情况。
bat小白,请多指教!谢谢!

TOP

回复 26# czjt1234


   答案在15楼,楼主还要进行其它操作,同时开3个bat,大概说明 其它操作的时间需要占用2/3,htox32c.exe不能同时操作,限制了脚本效率,所以利用其它bat进行其它操作的时间,执行htox32c.exe,这样htox32c在三个bat中“接力”执行操作,把效率提到最高。
bat小白,请多指教!谢谢!

TOP

回复 31# czjt1234


应该可以,只是不知道楼主具体环境,代码如何写...
也可以把htox32c这行命令,写入 1.bat 2.bat 3.bat
第4个bat根据时间顺序执行这几个bat,执行后删除,原bat判断是否已经删除,然后执行下一步
bat小白,请多指教!谢谢!

TOP

返回列表