Board logo

标题: [文本处理] [已解决]生成的bat拥有延迟执行的效果 [打印本页]

作者: 小文    时间: 2014-12-31 12:21     标题: [已解决]生成的bat拥有延迟执行的效果

本帖最后由 小文 于 2015-2-15 19:38 编辑
  1. set a="@echo off"
  2. set b="ping 127.0.0.1 -n 5000>unl"
  3. set c="pause"
  4. echo %a% %b% %c%>null.bat
  5. pause
复制代码
我在网上找了三四种bat延迟执行的方法,但它们都只能在转行的情况下执行,如【ping 127.0.0.1 -n 5000>unl】、【for /l %%i in (0,1,10000) do echo %%i>nul】。
【dir c:\ & timeout /t 10 & dir d:\ 】可在本行执行,但无法通过直接输出到生成的文件(而是在“变量中就直接执行了”)、
  1. :: Sleep.bat - Sleep/Delay/Wait n seconds:: Herbert Kleebauer(Germany) - 2005/05/29
  2. :: Modified by Will Sort - 2005/06/02
  3. @echo off  
  4. echo q | debug>nul
  5. echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com
  6. echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com
  7. echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com
  8. echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com
  9. echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com
  10. echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com
  11. echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com
  12. echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com
  13. echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>>sleep.com
  14. echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>sleep.com
  15. echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>sleep.com
  16. echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>sleep.com
  17. echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>sleep.com
  18. sleep.com>sleep.exe
  19. del sleep.com
  20. echo wait 2 seconds:
  21. sleep.exe 2000
复制代码
我就不知道了……

需要讨论的有:输出后能延迟执行(也可通过加引号完整输出,再删除生成的引号,但有没有更好的办法呢?);
       输出后的换行问题(我大概在网上查了下,本问题貌似不好解决)。
作者: pcl_test    时间: 2014-12-31 12:57

回复 1# 小文
方法一
  1. @echo off
  2. echo @echo off>>B.bat
  3. echo for /l %%%%i in (5,-1,0) do (>>B.bat
  4. echo cls>>B.bat
  5. echo echo 倒数%%%%i秒后自动打开记事本!请稍等。。。>>B.bat
  6. echo ping -n 2 127.1 ^>nul>>B.bat
  7. echo )>>B.bat
  8. echo start notepad>>B.bat
  9. start B.bat
复制代码


方法二
结合任务计划服务
作者: 小文    时间: 2014-12-31 13:22

回复 2# pcl_test


    可行,感谢朋友万忙中的参与。为什么你搞的就能完整输出呢?我都看不懂,也不好全都问你,你能不能说一点其中的一个符号的:【echo ping -n 2 127.1 ^>nul>>B.bat】里面的【^】这个符号有什么作用?
作者: Batcher    时间: 2014-12-31 13:46

回复 3# 小文


^ 是转义符号
由于 > 是特殊字符,如果你想把它写入文件的话,需要使用 ^ 进行转义。

更多内容请参考:
http://bbs.bathome.net/viewthread.php?tid=1205#pid25363
http://bbs.bathome.net/thread-1205-1-1.html
作者: pcl_test    时间: 2014-12-31 13:51

回复  pcl_test


    可行,感谢朋友万忙中的参与。为什么你搞的就能完整输出呢?我都看不懂,也不好全 ...
小文 发表于 2014-12-31 13:22

>是重定向命令,将命令输出写入到文件或设备echo ping -n 2 127.1 ^>nul>>B.bat如果不加^转义符,就会变成执行echo、>、>>三个命令,^的作用就是把>变成普通字符
作者: 小文    时间: 2015-1-2 16:47

回复 4# Batcher


    学到了,谢谢师傅!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2