用BAT批处理查找文件并创建桌面快捷方式
可以直接下载附件 或者复制以下代码到记事本 保存为任意名字.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那几行都删掉