windir被我误删了,试了各种办法,最后使用尝试使用cmd,但是出现了点问题……

终极dos批处理循环命令详解
  作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。
  注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
  关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f

  1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
  2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。

四、参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
  这个参数是最难的,参数又多,先简单的解释一下:for命令带这个参数可以分析文件内容,字符串内容或某一命令输出的结果,并通过设置option得我们想要的结果。
  以下是某高手的解释,感觉有点太专业了,自认为不太容易理解,也列一下:
  [迭代及文件解析--使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。
  请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用 for 循环。
  默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。]

  (TTT说明:下面是详细的解释,大部分是系统中的帮助内容,也有些错误(怪不得for命令这么难学),已经被我纠正了。)

  eol=c:指一个行注释字符的结尾(就一个)。例如:eol=; --忽略以分号打头的那些行;
  skip=n:指在文件开始时忽略的行数。例如:skip=2 --忽略2行;
  delims=xxx:指分隔符集。这个替换了空格和跳格键的默认分隔符集。例如:[delims=, ] --指定用逗号,空格对字符串进行分隔。
  tokens=x,y,m-n:指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符是星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。例如:tokens=2,3* --将每行中的第二个和第三个符号传递给 for 程序体;tokens=2,3* ... i% --将会把取到的第二个字符串赋给i%,第三个赋给j%,剩下的赋给k%。
  关于usebackq,不同版本的系统提示不同的帮助,不过都有助于理解,所以都摘抄如下:
  (1),usebackq:使用后引号(键盘上数字1左面的那个键`)。未使用参数usebackq时:file-set表示文件,不能加引号,所以 不能含有空格;加双引号表示字符串,即"string";加单引号表示执行命令,即'command'。使用参数usebackq时:file-set 和"file-set"都表示文件,当文件路径或名称中有空格时,就可以用双引号括起来;单引号表示字符串,即'string';后引号表示命令执行,即 `command`。(此段是WinXP系统中的帮助)
  (2),usebackq:指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串;并且一个单引号字符为文字字符串命令;并允许在filenameset中使用双引号扩起文件名称。
  以上两条结合着看,其实已经可以明白了,我再说明一下:
  其实这个参数的目的就是为了处理带有空格的文件名。如果您要处理的文件名和路径中含有空格,如果直接使用,会提示找不到文件。如果你用双引号将文件名 和路径括起来。这时候将作为字符串处理,而不是作为文件了。为了应对这种情况,所以才增加了这个“usebackq”参数。如果使用了这个参数,对于括号 中的加双引号的集合,系统就可以认为是文件了;真正的字符串要加单引号;命令要加反引号。

  2) file-set 为一个或多个文件名。继续到 file-set 中的下一个文件之前,每份文件都已被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符 号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 "options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。

  3) %i:专门在 for 语句中得到说明,%j 和 %k 是通过tokens= 选项专门得到说明的。您可以通过 tokens= 一行指定最多 26 个符号,只要不试图说明一个高于字母 'z' 或'Z' 的变量。请记住,FOR 变量是单一字母、分大小写和全局的;而且,同时不能有 52 个以上都在使用中。
  (TTT补充说明:
  一般在tokens后只指定第一个参数,如%%i或%%a,在后面使用第二个及两个以上的参数,自动按顺序往下排即可。如前面指定的是%%a,后面则 用%%b代表第二个结果,%%c代表第 三个结果。。。测试了一下tokens后指定多个变量名,没有测试成功,应该是不可以的。所以token后只能跟要使用的第一个变量名
  如果使用的变量名超过了%z或%Z,就无法使用了,曾经以为会循环过来:如%%z后可以使用%%a或%%A,但经测试,这是不可以的。
  以下是系统提供的范例:
  说明:会分析 myfile.txt 中的每一行,
  eol=; --忽略以分号打头的那些行;
  tokens=2,3* --将每行中的第二个和第三个符号传递给 for 程序体;
  delims= , --用逗号和/或空格定界符号。
  %i --这个 for 程序体的语句引用 %i 来取得取得的首个字符串(本例中为第二个符号),引用 %j 来取得第二个字符串(本例中为第三个符号)引用 %k来取得第三个符号后的所有剩余符号。
  (TTT说明:上述例子和说明中明显的错误,%i应该换为%%i(帮助中有明确的说明:指定变量请使用 %%variable,而不要用 %variable,误导)

  1,以上命令中,%%~fsI无法显示,估计是系统错误,因为%%~fI是扩充到一个完全合格的路径名,%%~sI只含有短文件名,本身是相互矛盾的,所以出错。不知是系统的错误还是在考我们~~
  2,以上命令如果保存在别的盘中,无法显示正确的驱动器和路径。
  这个变量的作用就如他的说明,删除引号!
  删除引号规则如下(BAT兄补充!):
  1、若字符串首尾同时存在引号,则删除首尾的引号;
  2、若字符串尾不存在引号,则删除字符串首的引号;
  3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。
  龙卷风补充:无头不删,有头连尾删。

  我们来看这个例子,首先建立临时文件temp.txt,内容如下
  也可建立个BAT文件代码如下:

代码写好后,我们该怎么打开数据流图?

给大家一个简单的代码示范:


  

run一下之后,不会有输出结果。

注意:倒数第二段的代码中

我标注黑斜体的地方,是你自定义的放graph文件的地方。

接着打开cmd 我先放上一张图,方便说明:

logdir后面的就是你刚才保存graph的地址。

如上图所示,我们收到一个端口号:

反正我的电脑是直接打不开的,不知道你们可不可以,如果不可以,参考下面的办法:

打开谷歌浏览器,一定要谷歌浏览器

直接转到这样就会出现如下的画面:

看到画面中的No scalar data was found.不要慌,因为它默认选择的就是SCALARS选项,这个不是我们现在需要的,点击第四个GRAPHS我们的数据流图就出来了。

我要回帖

更多关于 win10系统 的文章

 

随机推荐