Board logo

标题: [文本处理] 【已解决】BAT:提示“变量环境$ 没有定义”,如何修改 [打印本页]

作者: 思想之翼    时间: 2014-9-20 19:58     标题: 【已解决】BAT:提示“变量环境$ 没有定义”,如何修改

本帖最后由 思想之翼 于 2014-9-21 11:07 编辑

下列代码,运行时提示“变量环境$ 没有定义”,如何修改?

@echo off&setlocal enabledelayedexpansion

for /l %%x in (1001,1,1210) do (
    set y=%%x
pushd "d:\文本\文本1\!y:~1!\"

set n=100
for /l %%a in (0 1 99) do set /a $!n:~1!=1,n+=1

for %%a in (lishihn*.txt) do (
  set "str= "
  setlocal
  for /f "delims=" %%b in (%%~snxa) do (
     for %%c in (%%b) do set "$%%c="
  )
  for /f "delims==$" %%b in ('set $ ') do set str=!str! %%b
  echo !str:~2!
  endlocal
)>"d:\文本\未出数1\!y:~1!\%%~nxa"
)
exit
作者: apang    时间: 2014-9-20 22:50

如果文本中00~99所有数字都存在,会出现环境变量$未定义,这样试试:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%a in (100 1 199) do set $%%a=1
  3. for /l %%x in (1001,1,1210) do (
  4.     set "y=%%x"
  5.     cd /d "d:\文本\文本1\!y:~1!\"
  6.     for %%a in (lishihn*.txt) do (
  7.         set "str= "
  8.         setlocal
  9.         for /f "delims=" %%b in (%%~snxa) do (
  10.             for %%c in (%%b) do set "$1%%c="
  11.         )
  12.         for /l %%b in (100 1 199) do if defined $%%b set "str=!str! %%b"
  13.         set "str=!str: 1= !"
  14.         echo,!str:~2!
  15.         endlocal
  16.     )>"d:\文本\未出数1\!y:~1!\%%~nxa"
  17. )
  18. pause
复制代码
ps:楼主以后注意说清代码的功能,给出样本,不要让人去猜




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