gpt4 book ai didi

Unicode 命名的文件夹显示?在 wscript 提示符下

转载 作者:行者123 更新时间:2023-12-03 03:05:04 26 4
gpt4 key购买 nike

我遇到了 Unicode 命名文件夹的问题。当我将文件夹拖到脚本中时,它没有正确显示文件夹的路径。

简单的 VBScript(这只是其中的一部分):

Dim Wshso : Set Wshso = WScript.CreateObject("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count = 1 Then
If FSO.FileExists(Wscript.Arguments.Item(0)) = true and FSO.FolderExists(Wscript.Arguments.Item(0)) = false Then
Alert "You dragged a file, not a folder! My god." & vbcrlf & "Script will terminate immediately", 0, "Alert: User is stupid", 48
WScript.Quit
Else
targetDir = WScript.Arguments.Item(0)
Wshso.Popup targetDir
End If
Else
targetDir = Wshso.SpecialFolders("Desktop")
Alert "Note: No folder to traverse detected, default set to:" & vbcrlf & Wshso.SpecialFolders("Desktop"), 0, "Alert", 48
End If

如果是没有Unicode字符的普通路径就可以了。但在这种情况下:目录:4 分钟 (포미닛) - 击中你的心

然后它会显示类似4min (?) - Hit Your Heart

如果我执行FolderExists,它无法找到拖动的文件夹。

是否有任何解决方法来支持 Unicode 命名文件夹?

谢谢!

如果不够清楚,我会编辑

最佳答案

这似乎确实是 Windows 脚本宿主 DropHandler shell extension 特有的问题。 。鉴于:

test.vbs "C:\포미닛.txt"
C:\WINDOWS\System32\WScript.exe "test.vbs" "C:\포미닛.txt"

当从控制台键入时,两者都可以工作(即使控制台无法呈现韩文,因此它看起来像),拖放操作应该会导致相同的命令经过Unicode->ANSI->Unicode 转换会丢失当前 ANSI 代码页中不存在的所有字符。 (因此 포미닛 可以在默认的韩语 Windows 安装上运行,但不能在西方 Windows 上运行。)

我不知道解决该问题的正确方法。您也许可以通过更改注册表中 .vbs 文件的 DropHandler 来解决此问题:

HKEY_CLASSES_ROOT\VBSFile\ShellEx\DropHandler\(Default)

从 WSH DropHandler ({60254CA5-953B-11CF-8C96-00AA00B8708C}) 到所使用的 {86C86720-42A0-1069-A2E8-08002B30309D}对于 .exe、.bat 和类似文件,不会出现此问题。您可能还需要更改 .vbs 的文件关联,以便在文件名参数周围加上引号,因为 EXE DropHandler 不会这样做,以避免文件名中出现空格问题。

由于这会影响所有 VBS 文件的参数传递,因此部署在除您自己的计算机之外的任何计算机上都是一个危险的修复。如果您需要这样做,也许您可​​以尝试使用适当的 DropTarget 创建一个新的文件扩展名,而不是更改 VBSFile 本身?或者也许放弃拖放到脚本上的行为并提供文件打开对话框或手动拖放字段。

关于Unicode 命名的文件夹显示?在 wscript 提示符下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com