您的位置:首页 > 其它

批处理命令实现批量创建快捷方式

2017-12-01 14:46 1151 查看
  近日,遇到一个需求:需要在目标目录下批量创建源目录下文件的快捷方式。

  在windows10操作系统下,首先想到的就是用批处理命令,循环读取配置文件中配置的源文件名,并且创建快捷方式到当前批处理文件所在目录下。因此最终的文件包括批处理文件和配置文件。

批处理命令

@echo off
color 0a
title 自动创建文件目录快捷方式

rem 设置变量延迟
setlocal EnableDelayedExpansion

rem 源文件路径,在这里修改路径
set root=E:\老九学堂\酱爆茄子\

rem 读取dir.txt每一行的内容 编码格式ANSI
for /f "delims=" %%a in (dir.txt) do (

rem 设置源路径=源文件路径 + 文件名a
set ThePath=%%a

rem 设置目标快捷方式全路径=bat文件路径 + 文件名a + ".lnk"
set LinkName=%~dp0%%a.lnk

rem 执行创建快捷方式
mshta VBScript:Execute("Set Shell=CreateObject(""WScript.Shell""):Set Link=Shell.CreateShortcut(""!LinkName!""):Link.TargetPath=""!ThePath!"":Link.Save:close"^)
)

echo 创建完成!按任意键退出
pause>nul


调试过程中,遇到了两个坑:

 1、中文编码乱码问题,读取的文件名不能与源文件名匹配,将批处理命令和配置文件的编码都改为ANSI编码格式问题解决。

 2、文件名空格问题,循环读取每一行内容的过程中,默认分隔符为空格和tab键,内容中有空格会默认为换行。因此需要设定没有默认分隔符”delims=”。

思考:

 1.是否可以改为输入或者配置源文件路径?

 2.是否可以直接配置绝对路径?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: