标题: [文件操作] [已解决]批处理怎样根据用户输入搜索指定类型文件? [打印本页]
作者: ny350101 时间: 2011-4-3 23:49 标题: [已解决]批处理怎样根据用户输入搜索指定类型文件?
本帖最后由 ny350101 于 2011-4-4 18:24 编辑
- @echo off
- echo 请输入你要查找的程序名称,如 a.txt 或 *.txt 或 a*
- echo 带空格的文件名,请加上"半角引号"。
- echo\
- set cx=
- set d=
- set /p cx=请输入:
- for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "移动">nul && (set d=%%a)
- )
- if exist %d%: (
- if not exist d:\wkdxz\ md d:\wkdxz
- for /f "delims=" %%b in ('dir /s /b %d%:\%cx%') do (copy "%%b" d:\wkdxz 2>nul)
- ) else (
- echo 当前没有检测到U盘,按任意键退出……
- pause>nul
- exit
- )
- echo 复制完毕,按任意键打开复制目标目录……
- pause>nul
- explorer d:\wkdxz
复制代码
这是一个查找U盘指定文件的批处理,现在的问题是把他修改为默认(按回车键)查找*.DOC文件(也就是所有的DOC文件),想查找别的类型文件是按照批处理的提示输入文件类型?
作者: TX_kakashi 时间: 2011-4-4 09:55
set/p后添加- if "%cx%"=="" (set "cx=*.doc")
复制代码
若是不指定后缀名则添加默认后缀名为.doc话可以这样- for /f "delims=" %%a in ("%cx%") do (
- if "%%~xa"=="" (set cx=%cx%.DOC)
- )
复制代码
作者: CrLf 时间: 2011-4-4 10:51
在@echo off的下一行添加set cx=*.doc
作者: ny350101 时间: 2011-4-4 17:12
2# TX_kakashi
谢谢,你的第一段代码即- if "%cx%"=="" (set "cx=*.doc")
复制代码
符合我的要求。
第二段代码如果直接按回车的话,则将全部的文件都给复制了,且打乱了目录结构。不过后缀名倒是可以省略了。各有长处。不知我添加的位置是否正确
再次谢谢。
作者: CrLf 时间: 2011-4-4 17:28
他是想为后缀名为空的变量加上doc后缀,不过这样更简单:
if defined cx if "%cx:.=%"=="%cx%" set cx=%cx%.doc
作者: ny350101 时间: 2011-4-4 17:33
5# zm900612
谢谢了老兄。能否告诉我该代码应该添加在哪里?
作者: hanyeguxing 时间: 2011-4-4 17:34
本帖最后由 hanyeguxing 于 2011-4-4 17:36 编辑
5# zm900612
1:- if not defined cx set cx=.doc
复制代码
2:- (set cx||set cx=.doc)>nul 2>nul
复制代码
ps:放到 set /p cx=请输入: 的下面
作者: ny350101 时间: 2011-4-4 17:37
这么多热心人啊,我都谢不及了。在此一起表示感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |