![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-18 19:48 |
共 47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 有以X:Y\PATH\FILE格式判断NTFS下某文件存在的DOS命令么 |
| 可打印版本 2,835 / 29 |
| 第16楼 terse | 发表于 2007-03-30 02:11 |
| 银牌会员 发帖 946 积分 2,404 | |
|
PSI行吗?用XUSEN的把我的NTFS格式的主分区C盘影为H符,但分区号却不是1,而是排在后面,转换成问题啊!
|
|
| 第17楼 0451lym | 发表于 2007-03-30 05:37 |
| 高级用户 发帖 357 积分 760 | |
|
呵呵弄错了,知道是什么用的了
[ Last edited by 0451lym on 2007-3-30 at 11:33 AM ] |
|
| 第18楼 0451lym | 发表于 2007-03-30 05:39 |
| 高级用户 发帖 357 积分 760 | |
|
我也不知道是干什么用的,你把实验的结果告诉我们!
|
|
| 第19楼 terse | 发表于 2007-03-30 11:58 |
| 银牌会员 发帖 946 积分 2,404 | |
|
干什么用的?怎么用?
|
|
| 第20楼 llztt1 | 发表于 2007-03-30 12:05 |
| 中级用户 发帖 94 积分 214 | |
|
最近整理好了启动盘,结果刻好后在实机中发现了几个问题
一、支持SATA的主板很容易使PSI分析硬盘信息出错,这个悲哀的很,不知修改批处理能否改善这一问题不? 二、实机操作中DIRT也开始出错了(虚拟机正常),首先是搜索结果最后两行ERROR:CAN NOT GET COMMAND.COM‘S PSP,其次是修改过的XUSEN的搜索批处理因为DIRT原因直接中断退出,再次发现用DIRT的搜索批处理有时会卡机,停留在某个盘符死掉了。。 总上,感觉忒郁闷了 |
|
| 第21楼 0451lym | 发表于 2007-03-30 12:39 |
| 高级用户 发帖 357 积分 760 | |
Originally posted by llztt1 at 2007-3-30 12:05: 一、SATA的主板很容易使PSI分析硬盘信息出错,这个我没碰到过,我测试的是SATA硬盘正常,但是NTFS压缩分区严重出错!(SATA光驱没测试) 二、DIRT使用正常,我的是自己编写的,没有完全参考XUSEN的搜索引擎!DIRT在搜索SATA硬盘的NT分区速度正常,但是搜索老硬盘的NT分区有时间窒缓的问题。如果加载SMARTDRV 在搜索NT分区有时候会死掉!总体感觉还可以! |
|
| 第22楼 0451lym | 发表于 2007-03-30 12:43 |
| 高级用户 发帖 357 积分 760 | |
|
DIRT搜索引擎
@ECHO OFF REM -------------------------------------------------- IF "%ID%"=="N" goto JSA SET CZWJ=%1>NUL set ID=1>NUL :BLFZ0 strings ID=add %ID%,1 for %%x in (%id%) do ECHO SET LS=%%%%x%%>%temp%\ls.bat CALL %temp%\ls.bat %1 %2 %3 %4 if "%LS%"=="" goto KS :BLFZ1 ECHO %LS%|find.exe /i "/L:">NUL if ERRORLEVEL 1 goto BLFZ2 SET ZL=%LS%>NUL goto BLFZ0 :BLFZ2 ECHO %LS%|find.exe /i "/D:">NUL if ERRORLEVEL 1 goto BLFZ3 SET ZD=%LS%>NUL goto BLFZ0 :BLFZ3 ECHO %LS%|find.exe /i "/T:">NUL if ERRORLEVEL 1 goto BLFZ4 SET CZT=%LS%>NUL goto BLFZ0 :BLFZ4 SET WJM=%LS%>NUL goto BLFZ0 :xs ECHO 正在搜索→数据,请稍候......>%temp%\XS.TXT :KS if NOT exist %temp%\XS.TXT goto xs GO %RAMDRIVE%\BAT wbat cls (white on blue) wbat fill11,16(5,50)(+white on +blue)!text13,16@%temp%\XS.TXT for %%x in (ID xs) do SET %%x=>NUL if "%WJM%"=="" SET WJM=%temp%\CZ.TXT>NUL if exist %WJM% del %WJM% ECHO %CZWJ% | find.exe /i ":">NUL if ERRORLEVEL 1 set ID=1 if "%ID%"=="" goto DFQ for %%x in (bfb zrl) do SET %%x=0>NUL wbat fill17,16(1,50)(white on +black)!text17,39(1,2)"%bfb%%%" if exist %temp%\HDD.INI strings zrl=linesize %temp%\HDD.INI :00 for %%x in (PSI CZFQ jdt bfb ls) do MYSET %%x=>NUL strings ls=mul %ID%,100 strings bfb=div %ls%,%zrl% strings jdt=div %bfb%,2 MYSET ls=>NUL strings ID=add %ID%,1 if exist %temp%\HDD.INI strings PSI=read %temp%\HDD.INI,%ID% if "%PSI%"=="" goto js if exist %temp%\HDD.INI STRINGS CZFQ=MID %PSI%,1,2 wbat fill16,16(1,50)(+white on brown)!text16,16(1,2)"搜索%CZFQ%\" MYSET PSI=>NUL :cz if "%CZWJ%"=="*.GHO" dirt %CZFQ%\*.GHO %ZD% %CZT% %ZL%|find.exe /i ":">>%WJM% if "%CZWJ%"=="*.GHO" dirt %CZFQ%\*.LYM %ZD% %CZT% %ZL%|find.exe /i ":">>%WJM% if not "%CZWJ%"=="*.GHO" dirt %CZFQ%\%CZWJ% %ZD% %CZT% %ZL%|find.exe /i ":">>%WJM% wbat fill17,16(1,%jdt%)(white on green)!text17,39(1,2)"%bfb%%%" GOTO 00 :DFQ dirt %CZWJ% %ZD% %CZT% %ZL%|find.exe /i ":">>%WJM% for %%x in (CZWJ ZL ZD CZT ID bfb jdt zrl) do SET %%x= DIRT /ClearEnv set id=1 goto JSA :js wbat cls (white on blue) wbat fill11,16(5,50)(+white on +blue)!text13,16@%temp%\XS.TXT wbat fill16,16(1,50)(+white on brown)!text16,37(1,2)"搜索完毕!" wbat fill17,16(1,50)(white on green)!text17,39(1,2)"100%%" for %%x in (CZWJ ZL ZD CZT bfb jdt zrl) do SET %%x= DIRT /ClearEnv set id=1 :JSA IF NOT "%ID%"=="N" STRINGS /q CZWJ=READ %WJM%,%ID% IF "%CZWJ%"=="" goto JSB IF NOT "%ID%"=="N" strings /q ID=add %ID%,1 ATTRIB /n %CZWJ%>%temp%\lS.TXT STRINGS /q LS=READ %temp%\lS.TXT,1 STRINGS /q SX=MID 1%LS%,7,4 STRINGS /Q LS=MID 1%LS%,4,1 SET SX=%LS%%SX% DIR /A %CZWJ%|find.exe ":"|find.exe /v "\">%temp%\LS.TXT STRINGS /q LS=READ %temp%\LS.TXT,1 STRINGS /q /P" LS1=PARSE %LS%"2". IF NOT "%LS1%"=="" SET LS1=文件夹 IF NOT "%LS1%"=="" GOTO JSA0 STRINGS /Q /P" LS1=MID %LS%"13"14 IF NOT "%LS1%"=="" STRINGS /q /P" LS2=PARSE %LS1%"1", IF NOT "%LS2%"=="" STRINGS /Q /P" LS3=PARSE %LS1%"2", IF NOT "%LS3%"=="" STRINGS /q /P" LS4=PARSE %LS1%"3", IF NOT "%LS4%"=="" STRINGS /q /P" LS5=PARSE %LS1%"4", SET LS1=%LS2%%LS3%%LS4%%LS5%>NUL :JSA0 STRINGS /q /P" LS2=MID %LS%"29"10 STRINGS /q /P" LS3=MID %LS%"41"5 for %%x in (%ls3%) do set ls3=%%x>NUL STRINGS /q /P" LS4=LENGTH %LS3% IF "%LS4%"=="4" SET LS3=0%LS3%>NUL SET LS=%LS1%>NUL STRINGS /q LS=DIV %LS%,1024 IF "%LS%"=="0" CALC %LS1%/1024|find ".">%TEMP%\LS.TXT WBAT CURSOR 1 IF "%LS%"=="0" STRINGS /q LS=READ %TEMP%\LS.TXT,1 FOR %%X IN (%LS%) DO SET LS=%%X>NUL STRINGS /q LS4=LENGTH %LS% STRINGS /q LS5=LENGTH %CZWJ% STRINGS /q LS1=SUB 47,%LS4%,%ls5% if "%ls%"=="" strings /q ls1=add %ls1%,4 STRINGS /q LS4=READ %RAMDRIVE%\BAT\CZ.BAT,2 STRINGS /q LS1=MID %LS4%,5,%LS1% FOR %%X IN (LS4 LS5) DO SET %%X=>NUL IF NOT "%LS%"=="" SET LS=%LS% KB >NUL ECHO %CZWJ% %LS1%→ %LS%%LS2% %LS3% %SX%>>%temp%\WJ.TXT FOR %%X IN (LS LS1 LS2 LS3 SX) DO SET %%X=>NUL IF "%ID%"=="N" GOTO JSB GOTO JSA :JSB wbat cls (white on blue) if "%id%"=="1" CALL W.BAT fix BOX (+WHITE ON +BLUE) @BAT.INI:CZ_0 wbat cls (white on blue) if exist %temp%\wj.txt TYPE %TEMP%\WJ.TXT>%WJM% if "%id%"=="1" del %wjm% FOR %%X IN (WJ.TXT LS.TXT XS.TXT LS.BAT) DO IF EXIST %TEMP%\%%X DEL %TEMP%\%%X FOR %%X IN (wjm id CMDLINE) DO set %%X=>NUL |
|
| 第23楼 0451lym | 发表于 2007-03-30 12:52 |
| 高级用户 发帖 357 积分 760 | |
|
再有判断U盘的分区问题,可以如下解决
在AUTOEXEC命令中没跳转盘符的时候用cd>来判断是不是C盘! 不知道可行不? |
|
| 第24楼 llztt1 | 发表于 2007-03-30 12:55 |
| 中级用户 发帖 94 积分 214 | |
|
唉,我也希望不是DIRT的问题才好,明天测试一下是否是启动盘IO。SYS或COMMAND。COM的问题,也或者是GRUB加载后的问题。。
|
|
| 第25楼 terse | 发表于 2007-03-30 13:05 |
| 银牌会员 发帖 946 积分 2,404 | |
|
搜索一级目录应该快点 习惯上GHO文件也一般在一级目录,怎么一个搜索这么长呢?
|
|
| 第26楼 0451lym | 发表于 2007-03-30 13:10 |
| 高级用户 发帖 357 积分 760 | |
Originally posted by terse at 2007-3-30 13:05: 1、要判断是全盘搜索还是单分区搜索! 2、不只能搜索一级目录,要的是真正的全方位搜索! 3、要知道结果,并且排序! 呵呵,这个我都精简了好多次了,改动了好多次了! |
|
| 第27楼 terse | 发表于 2007-03-30 13:32 |
| 银牌会员 发帖 946 积分 2,404 | |
|
那怎么不用lmod试试可以一次把X:\后面的分隔出 不是也方便?再用WBAT处理不是也好?
|
|
| 第28楼 0451lym | 发表于 2007-04-02 12:42 |
| 高级用户 发帖 357 积分 760 | |
|
又弄了好几天终于又搞出点名堂了!
XUSEN的和我原先做的都是30-50秒进入系统 今天我加了个小命令,结果10-13秒进入系统,而且搜索飞快! 呵呵,真是奇迹呀! |
|
| 第29楼 llztt1 | 发表于 2007-04-03 02:14 |
| 中级用户 发帖 94 积分 214 | |
|
速度慢主要耗在PSI上了,只要用PSI分析硬盘信息的话就快不了,除非换掉他
我也放弃XUSEN的老版搜索批处理了,去掉没用的搜索百分比显示,搜索速度是很快的 |
|
| 第30楼 0451lym | 发表于 2007-04-03 02:28 |
| 高级用户 发帖 357 积分 760 | |
|
我加了个缓存驱动QCACHE.SYS结果速度就飞快(千万不要用SMARTDRV,因为DIRT会死掉的!)
14秒进系统: DEVICE=\SYS\MEM\HIMEM.SYS /TESTMEM:OFF DEVICEHIGH=\SYS\MEM\EMM386.exe noems DEVICEHIGH=\SYS\MEM\QSCACHE.SYS /F /S7 9秒进系统: DEVICE=\SYS\MEM\HIMEM.SYS /TESTMEM:OFF DEVICE=\SYS\MEM\UMBPCI.SYS /S DEVICEHIGH=\SYS\MEM\QCACHE.SYS /L /S5 |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |