标题: [其他] 【已解决】为什么批处理if not exist 中变量没数据 [打印本页]
作者: chouxia 时间: 2014-10-27 15:07 标题: 【已解决】为什么批处理if not exist 中变量没数据
本帖最后由 chouxia 于 2014-10-28 08:12 编辑
代码如下:- @echo on
- setlocal enabledelayedexpansion
- cd v:\1aep
- for /f %%z in ('findstr /s /i /m "rendering=1" *.txt') do (
- for /f "tokens=1,* delims==" %%a in ('find "filenumber" ^< %%z') do ( set filenumber=%%b )
- for /f "tokens=1,* delims==" %%c in ('find "inipath" ^< %%z') do ( set inipath=%%d )
- for /f "tokens=1,* delims==" %%g in ('find "aepname" ^< %%z') do ( set aepname=%%h )
- ::echo NO. 0 !filenumber! !inipath! !aepname!
- for /l %%i in ( 1,1, !filenumber! ) do (
- echo filenumber=!filenumber! inipath=!inipath!
- if not exist "v:!inipath!\work_%%i.avi" ( echo 任务没有完成! )
- )
- )
复制代码
命令行返回如下:
v:\1aep>(
echo filenumber=!filenumber! inipath=!inipath!
if not exist v:!inipath!\work_4.avi (echo 任务没有完成! )
)
filenumber=5 inipath=\1avi\20141007183419060016s
任务没有完成
v:\1aep>(
echo filenumber=!filenumber! inipath=!inipath!
if not exist v:!inipath!\work_5.avi (echo 任务没有完成! )
)
filenumber=5 inipath=\1avi\20141007183419060016s
任务没有完成
我想问的是在if not exist v:!inipath!\work_5.avi (echo 任务没有完成! )这行中 !inipath!为什么没有数据。inipath应该是\1avi\20141007183419060016s才对啊
作者: DAIC 时间: 2014-10-27 15:43
怎么没有数据呢?你前面的那个echo命令不是可以显示它的值吗?
延迟扩展的变量的值在回显的时候不会被显示,你可以用echo命令查看它的值。比如:- @echo on
- setlocal enabledelayedexpansion
- set x=1
- set /a y=!x!+1
- echo !y!
- pause
复制代码
作者: chouxia 时间: 2014-10-27 15:50
本帖最后由 chouxia 于 2014-10-27 16:00 编辑
我的对应目录里肯定有work_1.avi之类的文件
那判断语句怎么会失效
if not exist 的意思 是如果文件不存在 不对吗
文件存在,这行应该没反应才对吧
作者: DAIC 时间: 2014-10-27 16:35
回复 3# chouxia
在 if not exist "v:!inipath!\work_%%i.avi" 上面加一行:- dir "v:!inipath!\work_%%i.avi"
复制代码
作者: chouxia 时间: 2014-10-27 16:44
本帖最后由 chouxia 于 2014-10-27 16:46 编辑
dir提示没有找到文件
这个是啥情况?
work_%%1.avi 应该没问题吧
if not exist "v:!inipath!\work_4.avi" 有被很好的赋值啊
作者: Batcher 时间: 2014-10-27 17:45
回复 5# chouxia
work_1.avi的完整路径发出来看看
作者: apang 时间: 2014-10-27 21:05
路径后面有空格- @echo on
- ( set inipath=abc )
- echo,"%inipath%"
- pause
复制代码
赋值时最好用引号包围,一了百了复制代码
作者: chouxia 时间: 2014-10-28 08:06
回复 6# Batcher
V:\1avi\20141007183419060016s\work_1.avi
作者: chouxia 时间: 2014-10-28 08:11
回复 7# apang
谢了,果然是txt中一行有空格。
困扰我N天了 拜谢拜谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |