[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理for打开就一闪,想问下为什么不会停留?

最近在自学批处理 ,写一个简单的看看能得到怎么样的效果,但是打开就一闪,想问下为什么不会停留,还有如果想把echo %%i 的内容写到一个txt里,是不是在后面加一个>>a.txt就可以了,请各位大神指教,谢谢!!
  1. @echo off
  2. cd /d %~dp0
  3. for /f %%i in(123.txt) do echo %%i
  4. pause
复制代码

  1. (for /f "delims=" %%i in ('type "123.txt"') do echo %%i)>"a.txt"
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


    感谢大神的回复,我想问下上面我那个有什么问题,因为我想看看每次参数后的结果,你这个加了delims结果就变了,谢谢!!

TOP

回复 3# qhmpv
那就把"delims="去掉
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp


    你好,经过试验,(for不是内部命令,所以for不用加(),然后试验的结果为什么跟学的不一样,学习的内容是这样的:
for /f %%i in (a.txt) do echo %%i

还是先从括号执行,因为含有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,把它作为一个集合,并且以每一行作为一个元素,所以会产生这样的集合,


{“第1行第1列 第1行第2列 第1行第3列”, //第一个元素

“第2行第1列 第2行第2列 第2行第3列”, //第二个元素

“第3行第1列 第3行第2列 第3行第3列”}   //第三个元素


集合中只有3个元素,同样用%%i依次代替每个元素,然后执行do后面的命令。

具体过程:


用%%i代替“第1行第1列 第1行第2列 第1行第3列”,执行do后面的echo %%i,显示“第1行第1列 第1行第2列 第1行第3列”,

用%%i代替“第2行第1列 第2行第2列 第2行第3列”,执行echo %%i,显示“第2行第1列 第2行第2列 第2行第3列”,

依次,直到每个元素都代替完为止。

但是我编的是到空格为止就算一行内容完了,并没有第一行第一列,第一行第二列……
123.txt
@echo
title
color
cd
更改当前目录为批处理本身的目录(%0代表批处理本身,
for
for
if
xcopy
echo.成功复制"%%i"到"%%s"文件夹
)
)
)
pause

TOP

然后我加了一个"delims=",居然显示的是所有内容,不是应该以空格为分割么??

TOP

回复 1# qhmpv


但是打开就一闪,想问下为什么不会停留

代码保存为 C:\test.bat
打开一个CMD窗口,执行命令:
C:\test.bat

这样可以看到详细的报错信息或者线索。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# qhmpv


用%%i代替“第1行第1列 第1行第2列 第1行第3列”,执行do后面的echo %%i,显示“第1行第1列 第1行第2列 第1行第3列”,

这里是你自己猜的?还是在哪个教程里面看到的呢?
不使用 tokens 和 delims 的情况下,默认 %%i 只能获取到第一列
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

推荐教程:

批处理for命令视频教程
http://bbs.bathome.net/thread-31727-1-1.html

批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 miqilaosu 于 2019-6-17 15:44 编辑

回复 6# qhmpv


   in后面的空格哪里去了

TOP

回复 8# Batcher


    我是在这里看的:https://blog.csdn.net/DavidHsing/article/details/1996180,看了想写一个简单的看看结果怎么样的,但出来的跟他教的好像不一样

TOP

回复 9# Batcher


    管理员大神,我还想问下,  ( 023-0049   阀芯.dwg)   这样的文件名,我想根据前面023-0049这个数字把文件放到相应的文件夹里怎么表标:
for /f "delims=*/" %%i in ('dir /a-d/b "* *.dwg"') do   ?

TOP

回复 12# qhmpv


    for /f "tokens=1,2 delims= " %%i in ('dir /a-d/b "* *.dwg"') do  echo,"%%i %%j"

TOP

回复 10# miqilaosu


    不接分隔符可以取到整行
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# miqilaosu


    delims= 可以省略
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表