标题: [文本处理] [已解决]怎样检查文本里面所以说的路径是否有文件存在? [打印本页]
作者: 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
- @echo off
- for /f "delims=?" %%i in ('findstr /c:".html" 1.txt') do (
- echo %%i >>3.tmp
- for /f "delims=" %%j in ('findstr /c:".html" 3.tmp') do (echo %%j >>4.tmp))
- for /f "delims=" %%i in (4.tmp) do (if not defined %%i set %%i=A&echo %%i>>2.txt
- del *.tmp 2>nul )
- for /f "delims=" %%a in (2.txt) do (
- if exist %%a (
- echo %%a存在>>存在.txt) else (
- echo %%a不存在>>不存在.txt)
- )
- del 2.txt
- pause
复制代码
高手写起来应该会比较简单的,我比较粗糙。
[ 本帖最后由 yhcbird 于 2011-1-18 11:50 编辑 ]
作者: hanyeguxing 时间: 2011-1-18 11:53
- @echo off
- (for /f "delims=" %%a in (1.txt) do (
- set "a=%%a"&set d=%%~aa
- setlocal enableDelayedExpansion
- if "!d!"=="!d:d=!" if "!a!"=="!a:?=!" (
- if exist "!a!" (echo !a! 存在) else (echo !a! 不存在)
- )
- Endlocal
- ))>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 |