- @echo off
- set num=0
- setlocal enabledelayedexpansion
- for /f %%i in ('dir /a-d /b *.lnk') do (
- set /a num+=1
- echo num 当前的值是 !num!
- )
- echo 当前目录下共有 %num% 个lnk文件
- dir /a-d /b *.txt|findstr "test">nul&&(
- echo 存在含有 test 字符串的文本本件
- )||echo 不存在含有 test 字符串的文本文件
- if exist test.ini (
- echo 存在 test.ini 文件
- ) else echo 不存在 test.ini 文件
- pause
复制代码 点击这个bat时,cmd的窗口一闪而过- @echo off
- set num=0
- setlocal enabledelayedexpansion
- for /f %%i in ('dir /a-d /b *.lnk') do (
- set /a num+=1
-
- echo num 当前的值是 !num!
- )
-
- echo 当前目录下共有 %num% 个lnk文件
- dir /a-d /b *.txt|findstr "test">nul&&(
-
- echo 存在含有 test 字符串的文本本件
-
- )||echo 不存在含有 test 字符串的文本文件
- if exist test.ini (
-
- echo 存在 test.ini 文件
-
- ) else echo 不存在 test.ini 文件
- pause
复制代码 把带中文的每一行都空出一行,cmd显示正常,结果:
num 当前的值是 1
num 当前的值是 2
num 当前的值是 3
num 当前的值是 4
num 当前的值是 5
num 当前的值是 6
当前目录下共有 6 个lnk文件
存在含有 test 字符串的文本本件
不存在 test.ini 文件
请按任意键继续. . .
如果第一次有中文的代码行不空一行的话,- @echo off
- set num=0
- setlocal enabledelayedexpansion
- for /f %%i in ('dir /a-d /b *.lnk') do (
- set /a num+=1
- echo num 当前的值是 !num!
- )
-
- echo 当前目录下共有 %num% 个lnk文件
- dir /a-d /b *.txt|findstr "test">nul&&(
-
- echo 存在含有 test 字符串的文本本件
-
- )||echo 不存在含有 test 字符串的文本文件
- if exist test.ini (
-
- echo 存在 test.ini 文件
-
- ) else echo 不存在 test.ini 文件
- pause
复制代码 cmd仍正常显示,但显示结果如下:
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'cho' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
当前目录下共有 6 个lnk文件
存在含有 test 字符串的文本本件
不存在 test.ini 文件
请按任意键继续. . .
总之就是有中文的带echo的代码行不能正常执行,在会出现“'cho' 不是内部或外部命令,也不是可运行的程序或批处理文件。”的提示
求好心人帮助解决啊!!! |