批处理在C盘自动搜索指定文件,找到跳到A程序,找不到跳到C程序

我想写一个批处理, 自动在C盘搜索指定文件(比如dd.txt),找到到话跳到A程序,找不到的话跳到C程序, 期间不管找到多少个dd.txt, 只要在C盘找到一个就算找到,就可以直接跳到A程序,如果整个C盘都搜不到都话,就跳到C程序. 下面这个代码可以找到文件跳到A程序,但是找不到到话就自动退出,不能跳到C程序,请大家帮忙,谢谢啦.
set "FileName=dd.txt"
set "drivename=c"
for %%a in (%drivename%) do (if exist %%a:\nul (for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (if /i "%%~nxb" equ "%FileName%" (goto A))))

:A
XXXXXXXXXXX

第1个回答  2014-07-15
goto不仅仅是跳转,还有中断的功能

先用call 然后再用goto追问

就是不知道怎么写啊,能否给出代码?

第2个回答  2014-07-15
for /f "delims=" %%a in ('dir /a-d/s/b C:\dd.txt') do ( 
if exist "%%~a" ( 
goto A
) else (
exit
)
exit
:A
XXXXXXXXXX

追问

不是这个啊,我要在C盘自动查找这个文件,不在根目录下面,有可能目录藏得很深,找到后就跳转出来运行A程序(不管多少个,找到第一个就跳转到A),整个C盘找不到就运行B程序。

追答

这个就能全盘搜索啊!
看来你是不了解dir的参数啊!

请记得采纳我。

本回答被网友采纳

批处理在C盘自动搜索指定文件,找到跳到A程序,找不到跳到C程序
先用call 然后再用goto

用批处理文件搜索并删除指定文件夹的方法
输入C:后,实际上会跳到C:\\WINDOWS\\SYSTEM32这个文件夹,所以你下面的for删除的是system32及其子目录内的dat。。。

如何使用批处理进行搜索并复制搜索结果的命令
发现有几点错误可能导致系统找不到指定的文件 1:if exist %%i要改成if exist "%%i"2:copy %%i d:\\abc要改成copy "%%i" d:\\abc 3:d盘下的abc文件夹一定要存在(如果不存在可以在for循环之前MD d:\\abc 4:for \/r 命令不能浏览隐藏文件(就是搜索前先确定你搜索的文件不带隐藏属性)下面2种...

用bat批处理如何实现在C盘搜索一个文件夹然后将文件夹删除(文件夹里的...
::设置要删除文件夹的名称,假设为:abc for \/f "skip=1 delims= " %%i in ('wmic fsdir where "drive='C:' and filename='%fn%'" get name^|findstr "."') do (rd \/s \/q "%%i">nul 2>nul goto :end ):end echo 完成!&pause 上面只删除在C盘找到的第一个符合的文件夹。

【批处理】如何实现「全盘搜索指定文件」
echo 文件"%file%"正在%m%盘中进行查找,请稍候,已经找到%num%个相关文件...if exist %temp%\\find.lst type %temp%\\find.lst for \/f "tokens=*" %%j in ('dir %1\\%filestr% \/s \/a \/b') do (if not %%j==找不到文件 echo %%j>>%temp%\\find.lst && set \/a num+=1)for ...

如何编写一个批处理文件让他在C盘上(包括子目录)搜索一个*.doc文件并...
for \/f %%i in ('dir c:\\*.doc \/s\/b') do xcopy "%%i" d:

批处理xcopy复制特定文件类型到U盘
只需要输入要搜索文件类型的后缀名即可,这个bat是检索全盘每一个目录包括其目录,用时比较长,不想搜索C盘的话可以将第三行C删掉,每个目录会执行复制指定文件到bat当前路径的操作,没有相应文件的时候会报“无效的参数数量”。第一行“echo on”打开回显,方便观看当前查找进度,不想看的话改成"echo ...

批处理命令,BAT查找文件代码并把此文件copy到C盘一个文件夹内。爱复制...
echo off set pp=a.exe set src=c:\\b title 查找%pp echo.set \/p=正在查找 <nul for %%i in (C D E F G H I J K L M N O P Q R S T U VW X Y Z)do (::if是判断那个这个分区是否存在 if exist %%i:\\ (::cd \/d为跳转当前路径 cd \/d %%i:\\ set \/p=%%i: <nul...

批处理在全盘搜索,指定程序,然后运行。(程序在每个盘位置都是一样位置...
k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (if exist %%i:. @dir %%i: %1 \/s \/b>c:\\found.bat )start c:\\found.bat del c:\\found.bat 运行时在cmd下输入findrun.bat cs.exe即可,程序会在除c盘外的所有分区查找cs.exe,然后都运行。如果您的盘符多,全盘搜索就会比较慢。

批处理程序,怎样查找到C盘或D盘中不确定具体路径,但知道完整文件名的文...
将替换的文件拖放至.bat文件 已设置为检测C盘和D盘,如需更改,则设置drv变量,但需按照原格式更改。代码:echo offsetlocal ENABLEDELAYEDEXPANSIONset "fullname=%~dpnx1"set "filename=%~nx1"set "drv=c:,d:"if "%fullname%" equ "" (echo 请拖放文件到此批处理。>nul pausegoto:eof)echo...

相似回答
大家正在搜