Board logo

标题: [文本处理] [已解决]怎样检查文本里面所以说的路径是否有文件存在? [打印本页]

作者: ik22    时间: 2011-1-18 11:45     标题: [已解决]怎样检查文本里面所以说的路径是否有文件存在?

哥们, 怎样检查文本里面所以说的路径是否有文件存在?
如:1.txt里面有些路径:
d:\qq\1011\005\11235.html
e:\adv\1010\1015\1025.html
e:\adv\1010\1005\1125.html
e:\adv\1012\
D:\t\0111\?-19485.html

带?或者路径不正确的行 不要,
然后检查具有完整路径的路径里面是否存在1.txt里面该条路径的对应的文件名
如果存在则输出  路径名 存在

如果不存在则输出 路径名 不存在


这批处理应该怎么写?

[ 本帖最后由 ik22 于 2011-1-18 12:13 编辑 ]
作者: yhcbird    时间: 2011-1-18 11:49

  1. @echo off
  2. for /f "delims=?" %%i in ('findstr /c:".html" 1.txt') do (
  3. echo %%i >>3.tmp
  4. for /f "delims=" %%j in ('findstr /c:".html" 3.tmp') do (echo %%j >>4.tmp))
  5. for /f "delims=" %%i in (4.tmp) do (if not defined %%i set %%i=A&echo %%i>>2.txt
  6. del *.tmp 2>nul )
  7. for /f "delims=" %%a in (2.txt) do (
  8. if exist %%a (
  9. echo %%a存在>>存在.txt) else (
  10. echo %%a不存在>>不存在.txt)
  11. )
  12. del 2.txt
  13. pause
复制代码


高手写起来应该会比较简单的,我比较粗糙。

[ 本帖最后由 yhcbird 于 2011-1-18 11:50 编辑 ]
作者: hanyeguxing    时间: 2011-1-18 11:53

  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3.     set "a=%%a"&set d=%%~aa
  4.     setlocal enableDelayedExpansion
  5.     if "!d!"=="!d:d=!" if "!a!"=="!a:?=!" (
  6.         if exist "!a!" (echo !a! 存在) else (echo !a! 不存在)
  7.     )
  8.     Endlocal
  9. ))>1_.txt
复制代码

如果需要直接修改源文件,则在最后面加:move 1_.txt 1.txt

[ 本帖最后由 hanyeguxing 于 2011-1-18 13:12 编辑 ]
作者: yhcbird    时间: 2011-1-18 11:57

仰望孤星哥解题:)。。。。两个if的判断。。好喜欢。。。我就是不擅长这样用。哎~~~
孤星哥上面那段好象对不是完整路径的还没有排除~~ 追加一个判断就搞定了。yeah就是这样的,帅气 :))

[ 本帖最后由 yhcbird 于 2011-1-18 12:07 编辑 ]
作者: ik22    时间: 2011-1-18 12:14     标题: 回复 3楼 的帖子

hanyeguxing 版主写得好,谢谢




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