[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
因为你在命令行下运行后,环境变量就留在了那个窗口(进程),你再次运行时,就已经有那些变量了。

可以加一个 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

评分人数

    • mstsc: 学习到点东西技术 + 1

TOP

求问:写了一个小文件,内容如下
@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

TOP

本帖最后由 tmplinshi 于 2011-6-29 15:13 编辑

另外一个情况:

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


比如上面的例子,有没有可能你运行后,是在 c:\ 下找 33.text,而实际上 33.text 是生成到了 e:\我的文档\桌面\。

TOP

10# tmplinshi


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

就是 3 楼说的原因。

TOP

返回列表