用BAT批处理查找文件并创建桌面快捷方式

注意,是文件不是文件夹!文件名1.exe,在所有磁盘中查找,并在桌面创建快捷方式。... 注意,是文件不是文件夹!文件名1.exe,在所有磁盘中查找,并在桌面创建快捷方式。 展开
 我来答
alonesuperman
2015-08-24 · TA获得超过753个赞
知道小有建树答主
回答量:1280
采纳率:0%
帮助的人:1035万
展开全部

可以直接下载附件 或者复制以下代码到记事本 保存为任意名字.bat 文件类型选择所有 编码方式选择ANSI

不过本批处理有个瑕疵 就是如果电脑里存在多个同名文件 他只会展示它搜到的第一个文件的路径

 

@echo off
rem 指定待搜索的文件
set /p FileName0=输入欲搜索的文件名带后缀,如文件名1.exe:
echo 正在搜索,请稍候...
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 (
  if exist %%a:\nul (
    for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName0%" 2^>nul') do (
      if /i "%%~nxb" equ "%FileName0%" (
        set filename2="%%b"
      )
    )
  )
)
echo %filename2%
pause
set filename=%filename2%
rem echo 此时变量为%filename%
pause
:enterFileName
if /i %fileName%=="" goto :enterFileName 
if not exist %filename% (
echo filename变量的值为%filename%
echo 你输入的目录或者文件名不存在,请重新输入
rem pause
goto :enterFileName
)
if exist %filename% echo 文件存在
pause
cls
echo 例如C:\Users\我的用户名\Desktop\我的快捷方式.lnk 
echo 注意:
echo 最后面的.lnk不能省略
rem echo 这里的路径无须在两端加上英文输入法下的单引号!!!  
echo 并且在路径中不能包括系统变量。
echo.
set /p shortCutPath2=[请输入将创建方式保存到的输出路径] 
set shortCutPath="%shortCutPath2%"
echo 此时变量为%shortCutPath%
pause
echo Dim WshShell,Shortcut>>tmp.vbs 
echo Dim path,fso>>tmp.vbs 
echo path=%fileName%>>tmp.vbs  
echo Set fso=CreateObject("Scripting.FileSystemObject")>>tmp.vbs 
echo Set WshShell=WScript.CreateObject("WScript.Shell")>>tmp.vbs 
echo Set Shortcut=WshShell.CreateShortCut(%shortCutPath%)>>tmp.vbs 
echo Shortcut.TargetPath=path>>tmp.vbs 
echo Shortcut.Save>>tmp.vbs  
"%SystemRoot%\System32\WScript.exe" tmp.vbs 
del tmp.vbs /s /q 
cls  
if exist %shortCutPath%
echo 快捷方式创建完毕...
pause>nul  
if not exist %shortCutPath%
echo 快捷方式创建失败,请重新操作...
pause>nul 
rem 如果想为快捷方式指定图标,就加一句Shortcut.IconLocation="C:\Program Files\MyApp\MyProgram.EXE, 2"  后面的是图标路径。
 


 

追问
能不能自动搜索并创建快捷方式?快捷方式创建在BAT所在目录。
追答
我不知道你把bat下载或者摆放到哪个
set /p FileName0=输入欲搜索的文件名带后缀,如文件名1.exe:
这句话改成
set FileName0=文件名1.exe:

set /p shortCutPath2=[请输入将创建方式保存到的输出路径]
这句话改成
set haha=%cd%
set shortCutPath2=%cd%\我的快捷方式.lnk

就改以上两处就可以了。如果不想看到“按任意键继续”就把批处理里面的pause那几行都删掉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式