DOS/BAT

关注公众号 jb51net

关闭
首页 > 脚本专栏 > DOS/BAT > bat脚本创建文件或文件夹的快捷方式

使用bat脚本在当前文件夹内创建文件或文件夹的快捷方式

作者:西晋的no1

在windows中,使用bat脚本在当前文件夹内创建文件或文件夹的快捷方式,修改REM注释部分的值,可自定义快捷键的名称和指向目标,经脚本之家小编测试没问题

目标:在windows中,使用bat脚本在当前文件夹内创建文件或文件夹的快捷方式。

先分享两个比较简单的方式

BAT创建快捷方式的两种方法

创建快捷方式的主要方法有两种,一种是使用Windows命令行工具,另一种是使用VBScript或者JScript。

方法一:使用Windows命令行工具

在Windows命令行中,我们可以使用mklink命令来创建快捷方式。这个命令的基本语法是:

mklink Link Target

其中,Link是你想创建的快捷方式的路径,Target是你想快捷的对象的路径。

例如,如果你想创建一个指向"C:\original\path\file.link"的快捷方式"C:\shortcut\file.txt",你可以在命令行中输入以下命令:

mklink C:\shortcut\file C:\original\path\file.txt

方法二:使用VBScript或者JScript

在VBScript或者JScript中,我们可以使用WScript.Shell对象的CreateShortcut方法来创建快捷方式。以下是一个VBScript示例:

Set oShellLink = oWS.CreateShortcut("C:\shortcut\file.lnk")
oShellLink.TargetPath = "C:\original\path\file.txt"
oShellLink.Save

在这个例子中,我们首先创建了一个指向"C:\original\path\file.txt"的快捷方式"C:\shortcut\file.txt.lnk"。

注意:这些方法在创建快捷方式时有一些不同,mklink创建的是符号链接,而CreateShortcut创建的是真正的快捷方式。符号链接类似于快捷方式,但它指向的是文件或者文件夹的链接,而不是复制文件或者文件夹。真正的快捷方式会创建一个新的文件,这个文件包含了指向目标文件或文件夹的信息。

高级示例

下面是比较好的两种方式,适合交互

下述两个代码都可以达到目标,根据实际情况选择一个即可。

修改REM注释部分的值,可自定义快捷键的名称和指向目标

实现代码一

通过结合vbs实现,因为bat文件的交互性不如vbs更强大与简介

@echo off
echo 创建文件或文件夹的快捷方式
 
REM 程序工作目录 
set workingDir=C:
REM 快捷键指向的目标文件或文件夹
set targetPath=C:
REM 快捷键显示的名字
set lnkPath=%~dp0\name.lnk
 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%lnkPath%" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
::设置快捷方式的目标位置
echo oLink.TargetPath = "%targetPath%" >> %SCRIPT%
::设置快捷方式的起始位置
echo oLink.WorkingDirectory = "%workingDir%" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
 
cscript /nologo %SCRIPT%
del %SCRIPT%

实现代码二

也是通过vbs实现

@echo off & setlocal
 
REM 快捷方式指向的目标文件或文件夹,必须填写 
set arg1=C:
REM 快捷方式创建位置,为空默认为桌面
set arg2=
REM 快捷方式名称,为空默认为shortcut
set arg3=
 
if not defined arg1 goto usage
if "%arg2%"=="" set arg2=Desktop
if "%arg3%"=="" set arg3=shortcut
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""%arg2%"") & ""\%arg3%.lnk""):b.TargetPath=""%arg1%"":b.WorkingDirectory=""%~dp0"":b.Save:close")
echo 快捷键创建成功
pause
goto :eof
 
:usage
echo 参数缺失:%~n0 targetpath [shortcutfolder] [shortcutname]
pause
goto :eof

为了结合我们自己的使用,将生成的快捷方式 复制到自启动目录里面

我们是结合了hou计划任务

@echo off
echo 创建文件或文件夹的快捷方式
 
REM 程序工作目录 
set workingDir=D:\tools\houjihua
REM 快捷键指向的目标文件或文件夹
set targetPath=D:\tools\houjihua\OnTimer.exe
REM 快捷键显示的名字
set lnkPath=%~dp0\OnTimer.lnk
 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%lnkPath%" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
::设置快捷方式的目标位置
echo oLink.TargetPath = "%targetPath%" >> %SCRIPT%
::设置快捷方式的起始位置
echo oLink.WorkingDirectory = "%workingDir%" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
 
cscript /nologo %SCRIPT%
del %SCRIPT%

cd /d %workingDir%
copy %lnkPath% "C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
rem start OnTimer.exe
pause

主要是考虑下面的目录中间有空间需要加 双引号

快速进入启动目录

Win + R 快捷键打开运行窗口;

输入 shell:Startup,点击“确定”即可;

cd /d %workingDir%
copy %lnkPath% "C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
rem start OnTimer.exe
pause

完美解决问题。

到此这篇关于使用bat脚本在当前文件夹内创建文件或文件夹的快捷方式的文章就介绍到这了,更多相关bat脚本创建文件或文件夹的快捷方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

阅读全文