【IDL】使用SPAWN启动路径中带有空格的文件
2022/6/14 23:20:47
本文主要是介绍【IDL】使用SPAWN启动路径中带有空格的文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
直接利用SPAWN启动外部程序或文件时,如果路径中含有空格,则启动失败。如下边的例子,我们想打开D:\Temp\Program Files\test.txt文件,则会弹出错误提示,从错误提示可以看出,系统自动将空格后边的路径截断了:
IDL> spawn, 'start D:\Temp\Program Files\test.txt'
图 错误提示
如果不输入start,如下所示,则不会弹出错误提示。
IDL>
下面介绍几种方法,可以实现启动带空格路径的文件或程序。
添加空格
这个是发现的最简单的方法,SPAWN执行的命令里边,只要在start后边加入””即可。如下所示:
IDL> ;加入hide关键字可以隐藏CMD弹出的界面
IDL> spawn, 'start "" "D:\Temp\Program Files\test.txt"', /hide
此方法同样可以实现打开文件名中带有空格的文件,例如同路径下的“test 1.txt”文件:
IDL> spawn, 'start "" "D:\Temp\Program Files\test 1.txt"', /hide
利用简写
在Windows系统中,IDL的SPAWN命令其实就是在执行CMD命令。所以我们从Windows的命名规则找到解决方法。
带空格路径会使用缩写,比如C:\Program Files缩写为C:\Progra~1。从这里可以看出是采用了8个字符缩写,即前六个字母(略去空白),另加波浪号和1(编号)。例如:
- "Documents and Settings“ -- DOCUME~1
- "Local Settings" -- LOCALS~1 (注意略去空白,前六个字母,再加波浪号和编号)。
如果同一路径下,带有空格且前六个字母相同的文件夹,就需要“~”后边的编号来区分了。假设下面是C盘根目录中的文件夹:
- Program Files
- Progra File
- Progr ArcGIS
则三个目录分别表示为:C:\Progra~1; C:\Progra~2; C:\Progra~3。
注:如果文件夹名不足6个字母,比如abc,则使用abc~1即可。
注:后边的编号是按照文件夹创建时间的先后进行排序的,从1开始。
现在回到我们的例子,即打开“D:\Temp\Program Files\test.txt”文件,路径可以缩写为D:\Temp\Progra~1\test.txt,使用如下命令即可成功打开test.txt文件。
IDL> ;加入hide关键字可以隐藏CMD弹出的界面
IDL> spawn, 'start D:\Temp\Progra~1\test.txt', /hide
创建镜像
另外一种方法是利用CMD命令创建镜像,会自动在我的电脑生成一个虚拟硬盘Z盘(盘符不要与已有的盘符重复),操作如下:
IDL> ;利用subst可以创建镜像Z盘,指向目标目录"D:\Temp\Program Files"
IDL> ;然后就可以利用"Z: "替代"D:\Temp\Program Files",即"Z:\test.txt"
IDL> spawn, 'subst Z: "D:\Temp\Program Files"'
IDL> spawn, 'start Z:\test.txt', /hide
IDL> ;最后利用CMD命令删除创建的镜像即可
IDL> spawn, 'subst Z: /d'
快捷方式
可以利用创建快捷方式的方法。比如创建test.txt的快捷方式,剪贴到D盘根目录,便可以使用如下命令启动文件:
IDL> spawn, 'D:\test.txt.lnk', /hide
这篇关于【IDL】使用SPAWN启动路径中带有空格的文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?