bat批处理ECHO 处于关闭状态是怎么回事

@echo off&setlocal enabledelayedexpansion
set YUIFOLDER=D:\yuicompressor-2.4.7\build
set JSFOLDER=D:\js
@echo 正在查找 javascript
chdir /d %JSFOLDER%
for /r %%a in (*.js) do (
rem @echo 正在压缩 %%a
@echo %%a
set v = %%a
echo !v!
rem @java -jar %YUIFOLDER%\yuicompressor-2.4.7.jar --charset UTF-8 %%~a -o %%~a
rem @java -jar %YUIFOLDER%\yuicompressor-2.4.7.jar %%~a -o %%~a
endlocal
)
echo 完成!
pause

代码如上 但会报错 !v!显示出来的是常量

bat批处理ECHO处于关闭状态,是设置错误造成的,解决方法如下:

1、首先按【Win + R】快捷键打开【运行】对话框,输入“cmd”后按Enter键

2、先来看一下echo关闭状态时cmd的显示情况,从下图可以看到,虽然敲了多个回车,但是没有任何提示符出现,好像cmd出了问题一样。

3、这时输入【echo】命令查看一下当前回显的状态,可以看到“echo处于关闭状态”。

4、这时输入命令【echo on】,就完成了。

5、再看一看【echo】命令“回显”的功能,即后面跟什么,就在控制台回显什么,步骤图如下所示。

6、如果忘记echo的用法,输入【echo /?】按Enter键,就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-30
你先用echo off 关掉了回显,然后用echo显示内容的时候,如果后面的内容为空,就会被认为是单纯的echo命令,这个命令是用来查看当前的回显状态。而当前状态就是 echo 关闭。所以有这个结果。楼上那位说得很好,去掉@echo off ,查看是哪一步出错了。
第2个回答  2013-01-01
标题与代码的问题不一样,楼上有网友回答了标题的问题
把endlocal这行去掉就行了(它把变量延迟关了所以不能正常显示!v!)
看得出来这段代码是拼起来的,单纯就这段效果来说把&setlocal enabledelayedexpansion和
set v = %%a
echo !v!
及endlocal
都去掉都行
第3个回答  2012-12-29
删掉@echo off
看看是哪里出了问题,一般这种提示都代表变量值为空!
第4个回答  2010-05-21
真的只差一点( IF DEFINED aa echo.!aa!>>%%~na.tem ),修改后如下
@echo off &setlocal enabledelayedexpansion
echo 正在查找替换请等候...
set str1=123456
set str2=765432
for /f "delims=" %%a in ('dir /b/a-d *.txt') do (
copy nul %%~na.tem>nul
for /f "tokens=1* delims=:" %%b in ('findstr /n ".*" "%%a"') do (
if "%%c"=="" (echo.>>%%~na.tem) else (
set aa=%%c & set aa=!aa:%str1%=%str2%!
IF DEFINED aa echo.!aa!>>%%~na.tem ))
del "%%a" & ren "%%~na.tem" "%%a" )
echo 已完成,按任意键退出...
pause>nul
相似回答