#python #win32com
#python #win32com
Вопрос:
Мне нужно создать ярлык для сетевого диска в Python. У нас есть сетевой диск, который сопоставлен с разными буквами на разных компьютерах (например: I: или R: ), поэтому я не могу поместить букву перед путем, потому что она зависит от пользователя. Вместо этого я напрямую использую сетевой путь, но когда я пытаюсь запустить следующий код, я получаю com_error: «Невозможно сохранить ярлык», и он пытается добавить перед ним букву (например. P:) Есть ли быстрое решение этой проблемы?
import win32com.client
def main():
CreateShortcut()
def CreateShortcut():
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut("\xxxxxxx.xx.xx.xxx.com\shared\data\Test_Results_Location.lnk")
shortcut.Targetpath = "\xxxxxxx.xx.xx.xxx.com\shared\data\Machine\Test_Results"
#shortcut = shell.CreateShortCut("I:\Test Results Location.lnk") # This works fine
#shortcut.Targetpath = "I:\Machine\Test_Results"
shortcut.save()
return shortcut
if __name__ == '__main__':
main()
Комментарии:
1. Сетевые пути обычно начинаются с двух обратных косых
\servershare
черт, т. Е. Попробуйте использовать четыре из них с экранированием.2. Потрясающе, что работает, спасибо!
3. Тогда я отправлю его в качестве ответа 😉
Ответ №1:
Сетевые пути обычно начинаются с двух обратных косых черт, например \servershare
, для доступа к вызываемому общему share
server
ресурсу . Таким образом, при указании пути к этому общему ресурсу вам придется использовать четыре обратных косых черты, если вы хотите избежать его:
'\\xxxxxxx.xx.xx.xxx.com\shared\data\Machine\Test_Results'
Кроме того, вы также можете использовать необработанные пути, чтобы они выглядели немного менее сложными, поскольку вам не нужно избегать обратной косой черты в них:
r'\xxxxxxx.xx.xx.xxx.comshareddataMachineTest_Results'