批处理命令实现批量创建快捷方式
2017-12-01 14:46
1151 查看
近日,遇到一个需求:需要在目标目录下批量创建源目录下文件的快捷方式。
在windows10操作系统下,首先想到的就是用批处理命令,循环读取配置文件中配置的源文件名,并且创建快捷方式到当前批处理文件所在目录下。因此最终的文件包括批处理文件和配置文件。
批处理命令
调试过程中,遇到了两个坑:
1、中文编码乱码问题,读取的文件名不能与源文件名匹配,将批处理命令和配置文件的编码都改为ANSI编码格式问题解决。
2、文件名空格问题,循环读取每一行内容的过程中,默认分隔符为空格和tab键,内容中有空格会默认为换行。因此需要设定没有默认分隔符”delims=”。
思考:
1.是否可以改为输入或者配置源文件路径?
2.是否可以直接配置绝对路径?
在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.是否可以直接配置绝对路径?
相关文章推荐
- 批处理实现批量创建快捷方式
- 批处理实现c/s程序部署,以及创建桌面快捷方式
- 如何编程实现在快速启动栏创建快捷方式
- 自己实现快捷方式文件的创建
- C# 无需COM组件创建快捷方式的实现代码
- 解析Android应用启动后自动创建桌面快捷方式的实现方法
- DOS tree命令+批处理 实现 指定文件 批量复制!
- 用代码实现为程序创建快捷方式的二种方法
- linux ln命令 创建链接(快捷方式)
- 实现创建网页快捷方式到桌面的方法
- PHP编写实现可以创建网站快捷方式的方法
- Linux创建快捷方式(链接)命令ln
- 给应用程序创建快捷方式VC实现
- Linux创建快捷方式(链接)命令ln
- linux使用ln命令创建链接,如windows的快捷方式功能
- 批处理也玩创建快捷方式
- 自己实现快捷方式文件的创建
- runas 命令创建快捷方式
- 【转】巧用DOS tree命令+批处理 实现 指定文件 批量复制!
- 巧用DOS tree命令+批处理 实现 指定文件 批量复制!