Board logo

标题: [文本处理] [已解决]批处理提取文件第一行的set命令怎样理解? [打印本页]

作者: surup    时间: 2011-10-20 14:30     标题: [已解决]批处理提取文件第一行的set命令怎样理解?

本帖最后由 surup 于 2011-10-22 20:41 编辑
  1. @echo off
  2. set /p str=<%0
  3. echo %str%
  4. pause
复制代码
第二行怎么分析? str=<是什么意思?  是固定的组合还是令有作用?

http://bbs.bathome.net/viewthread.php?tid=3774#pid23888
该帖也指出接收文件的首行 其中%0代表批处理的全称,包括驱动器盘符、路径、文件名和扩展类型。可以调用批处理本身,达到批处理本身循环的目的。也可以复制文件自身。
(1)复制文件自身
  1. copy %0 d:\win.bat
复制代码
(2)返回批处理所在的绝对路径
  1. @echo off
  2. echo %0
  3. pause
复制代码
(3)无限循环批处理
  1. @echo off
  2. net user
  3. %0
复制代码
我想明白的是 %0什么时候用于文件名 什么时候用于路径 什么时候用于文件内容
如果通用的话 为什么set /p str=<%0 不提取路径?
::我也不知道怎么解释,希望你们能看明白。
作者: powerbat    时间: 2011-10-20 14:56

%0从来只表示路径。
set /p str=<%0 是因为有一个重定向输入符号(<),它从某个指定路径的文件中读取内容。
%0只是一个指代,你把它替换成你的脚本文件路径就好理解了。比如你叫张三,我和你说话,“你”这个词就是指你张三。
作者: surup    时间: 2011-10-21 17:41

回复 2# powerbat


    嗯嗯 懂了!
作者: zaixinxiangnian    时间: 2011-10-23 18:20

回复 2# powerbat

"比如你叫张三,我和你说话,“你”这个词就是指你张三"
还是有点不怎么明白




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