2024-10-03 19:29:04 发布
网友
我试图在windows安装程序上映射虚拟驱动器我使用的工具之一不喜欢文件名中的空格。在
在命令行上,我将执行以下操作
subst l: "c:\Program Files\Complier\version 6.0\bin"
我试图在Python中复制功能,但没有成功。我开始使用os.execl()直接执行subst命令,但是报告了一个无效参数错误。在
os.execl()
subst
SO上的其他一些解决方案建议直接使用Win32API。在
顺便说一下,我在Windows上使用python2.7.3。在
您可以直接调用windowsapi。请注意,您需要在这里传递unicode字符串,或者可以在函数上设置argtypes以获得类型安全行为。在
from ctypes import windll, c_int, c_wchar_p DefineDosDevice = windll.kernel32.DefineDosDeviceW DefineDosDevice.argtypes = [ c_int, c_wchar_p, c_wchar_p ] # Create a subst. Check the return for non-zero to mean success if DefineDosDevice(0, "T:", "C:\\Temp") == 0: raise RuntimeError("Subst failed") # Delete the subst. if DefineDosDevice(2, "T:", "C:\\Temp") == 0: raise RuntimeError("Couldn't remove subst")
理想情况下,您应该使用^{}并正确引用参数。您也可以尝试截断路径C:\Progra~1。在
C:\Progra~1
您可以直接调用windowsapi。请注意,您需要在这里传递unicode字符串,或者可以在函数上设置argtypes以获得类型安全行为。在
理想情况下,您应该使用^{} 并正确引用参数。您也可以尝试截断路径
C:\Progra~1
。在相关问题 更多 >
编程相关推荐