赞
踩
近日,遇到一个需求:需要在目标目录下批量创建源目录下文件的快捷方式。
在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.是否可以直接配置绝对路径?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。