一般来说,有没有办法创建文件的 Windows 快捷方式并指示 Windows 在传递文件名之前将某些开关传递给应用程序?
例如:我有一个 Excel 文件 abc.xlsx。如果我想创建一个快捷方式以只读方式打开此文件,我会将目标更改为"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" /r abc.xlsx
,但当我网络上的另一个人打开该快捷方式并且他们的 EXCEL.EXE 不在同一个文件夹中时,此操作会失败。
当然有一种方法可以告诉 Windows 传递 /r 开关而不提供应该打开该文件的应用程序的路径/文件名?
答案1
为此,请使用批处理 (cmd/bat) 文件。不要创建 Excel 的快捷方式,而是创建批处理文件的快捷方式。此文件将具有必要的逻辑。查看示例图像,它是 VS.NET 命令提示符,使用带有参数的相同 bat 文件。
- 如果 Excel 不在路径 * 中,请查找其正确路径
- 使用
/r
- 使用正确的 Excel 文件名。
* 由于 Excel 的位置在不同机器上可能有所不同,因此start excel "c:\myfile.xls" /r
在批处理文件中使用它可能会有所帮助。
start excel
应该启动 Excel,无论其位置如何。
答案2
您的快捷方式应包含可执行文件和目标文件的完整路径,如下所示:
"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" /r "C:\Users\Administrator\Desktop\abc.xlsx"
请注意,EXE 和 XLS 路径都放在引号中,以避免名称中出现空格的问题。
答案3
目标是要更改的字段。但是由于快捷方式指向路径,因此指向同一文件的两个快捷方式可能包含不同的目标,具体取决于网络驱动器的映射方式。因此,通常您不能通过网络复制快捷方式并希望它能正常工作,因为目标可能不再有效。
答案4
您可以为 Office 的目录定义一个环境变量,并在快捷方式中使用此变量。当然,必须在网络的每台计算机上定义此变量,但可以通过脚本完成,将来可用于其他目的。
如果定义了一个名为 Office 的环境变量,则可以像这样创建快捷方式:
cmd /c ""%Office%\EXCEL.EXE" /r "abc.xlsx""