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

[文本处理] 批处理直接双击运行与命令行下运行的区别?

[复制链接]
发表于 2011-6-29 14:30:30 | 显示全部楼层 |阅读模式
求问:写了一个小文件,内容如下
@echo off
for /f "delims=" %%i in (22.text) do (if not defined %%i set %%i=A && echo %%i>>33.text)
pause

双击该.bat文件时运行正常,产生了33.txt文件
但是在命令行下运行时,运行没有出错,但是没有产生33.txt文件

求问,这是为什么,两个运行方式有区别吗??
谢谢谢谢

评分

参与人数 1PB -2 收起 理由
Batcher -2 请编辑自己的帖子,把代码放到code标签里面 ...

查看全部评分

 楼主| 发表于 2011-6-29 14:39:57 | 显示全部楼层
自己顶一个,没人知道吗
发表于 2011-6-29 14:48:28 | 显示全部楼层
因为你在命令行下运行后,环境变量就留在了那个窗口(进程),你再次运行时,就已经有那些变量了。

可以加一个 setlocal,这样批处理退出后变量会跟着清除:
  1. @echo off
  2. setlocal
  3. for /f "delims=" %%i in (22.text) do (if not defined %%i set %%i=A && echo %%i>>33.text)
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
mstsc + 1 学习到点东西

查看全部评分

发表于 2011-6-29 14:56:27 | 显示全部楼层
是把代码复制到cmd中运行还是在窗口中调用bat呢?
 楼主| 发表于 2011-6-29 14:56:35 | 显示全部楼层
3# tmplinshi


感谢版主,但是我加了setlocal之后还是没有产生33.text文件,不知道是为什么?
 楼主| 发表于 2011-6-29 14:57:48 | 显示全部楼层
4# zm900612


不是复制进去,是用它的名字调用
 楼主| 发表于 2011-6-29 15:02:32 | 显示全部楼层
好莫名啊!!!
发表于 2011-6-29 15:03:09 | 显示全部楼层
求问:写了一个小文件,内容如下
@echo off
for /f "delims=" %%i in (22.text) do (if not defined %%i set %%i=A && echo %%i>>33.text)
pause

双击该.bat文件时运行正常,产生了33.txt文件
但是在命令行下运行时,运行没有出错,但是没有产生33.txt文件 ...
nomaze 发表于 2011-6-29 14:30


你代码中输出的文件是 33.text,而你运行批处理后寻找的是 33.txt
 楼主| 发表于 2011-6-29 15:08:12 | 显示全部楼层
8# tmplinshi


哦哦,我写错了,是33.txt,反正我改成33.txt之后,还是一样,我后面没有进行批处理寻找,就是在文件夹中没看到有生成33.txt文件
发表于 2011-6-29 15:11:01 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-6-29 15:13 编辑

另外一个情况:

e:\我的文档\桌面>c:\test.bat


比如上面的例子,有没有可能你运行后,是在 c:\ 下找 33.text,而实际上 33.text 是生成到了 e:\我的文档\桌面\。
 楼主| 发表于 2011-6-29 15:15:45 | 显示全部楼层
10# tmplinshi


不是的,我是在当前运行脚本的文件夹中找的,而且双击该脚本的时候所产生的33.txt是在当前文件夹下的,太妖怪了!!
 楼主| 发表于 2011-6-29 15:18:36 | 显示全部楼层
10# tmplinshi


我把cmd.exe关了之后重新开了一下,问题解决了,虽然不知道为什么。。。
谢谢你拉,呵呵
发表于 2011-6-29 15:29:52 | 显示全部楼层
10# tmplinshi


我把cmd.exe关了之后重新开了一下,问题解决了,虽然不知道为什么。。。
谢谢你拉,呵呵
nomaze 发表于 2011-6-29 15:18

就是 3 楼说的原因。
 楼主| 发表于 2011-6-29 15:39:20 | 显示全部楼层
13# tmplinshi


嗯,应该是的,不过不太懂原理,不知道究竟是停留在了哪个窗口(进程)了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 20:44 , Processed in 0.022003 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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