通过powershell命令传递时字典项不起作用

时间:2016-03-16 14:34:21

标签: python python-2.7 powershell dictionary backslash

我有一个从包含桌面链接的.txt文件创建的字典。我需要将这些链接插入到powershell命令中。但是当我使用'%s' % my_data[key]时,我得到额外的反斜杠,因此powershell不会处理命令,因为它不知道要查找什么,如何删除额外的反斜杠?

['powershell.exe', "$sh = New-Object -COM WScript.Shell\n$sh.CreateShortcut('C:\\Users\\johns\\desktop\\python\\Survey+Update\\testing this shared.lnk\n').TargetPath"]

2 个答案:

答案 0 :(得分:1)

我发现双反斜杠不是问题所在。我的代码subprocess.Popen([r"powershell.exe", r"$sh = New-Object -COM WScript.Shell" + "\n" + "$sh.CreateShortcut(%s).TargetPath" % my_data[key]], stdout=subprocess.PIPE).communicate()[0]

字典在每一行的末尾都有\ n。我使用my_dict[key].replace("\n","")来摆脱它。还需要“路径”\"%s\"修复的路径。我不知道powershell是如何处理双反斜杠的?但它确实

答案 1 :(得分:0)

尝试使用os.path.normpath:

dir_file = os.path.normpath("C:/Users/johns/desktop/python/Survey+Update/testing this shared.lnk")
['powershell.exe', "$sh = New-Object -COM WScript.Shell\n$sh.CreateShortcut({0}).TargetPath".format(dir_file)]