ANSI文本解压缩到其他文件

问题描述 投票:0回答:2

我复制了代码,我不知道它是如何工作的,但我测试它是一个宏。

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.CreateTextFile("filename.txt", True, False)
ObjFileTxt.Write "ok"
Set objFSO = Nothing

1.如何将示例中的目录更改为%tmp%? (默认为C:\ Users \ myuser \ Documents) 2.如何添加ANSI代码?即(MZ ˙˙

ObjFileTxt.Write "ĂäD»N§űGç„ 06߲ŕ7‰Vű"0ť­Â‹1'Ç U¶¤CÜf­×qjćĽ"

ansi有一个代码,其中包含“和'如何在其中写入ObjFileTxt.Write

我希望ansi代码保存在filename.txt中

file encoding vbscript wsh filesystemobject
2个回答
0
投票

回答你的问题:

  1. 如何将示例中的目录更改为%tmp%

您可以在Shell对象上使用.ExpandEnvironmentStrings来完成此操作,如下所示:

Set wShell = CreateObject("WScript.Shell")
sTempPath = wShell.ExpandEnvironmentStrings("%TMP%")
  1. 如何添加ANSI代码?

你必须纠正你在字符串中添加引用"的方式,通过复制它,就像这个""

ObjFileTxt.Write "AäD»N§uGç„ 06ß?r7‰Vu""0t­Â‹1'Ç    U¶¤CÜf­×qjcL"

您的代码将如下所示:

Set wShell = CreateObject("WScript.Shell")
sTempPath = wShell.ExpandEnvironmentStrings("%TMP%")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.CreateTextFile(sTempPath & "\filename.txt", True, False)
ObjFileTxt.Write "AäD»N§uGç„ 06ß?r7‰Vu""0t­Â‹1'Ç    U¶¤CÜf­×qjcL"
Set objFSO = Nothing

如果您想在ANSI中转换文件,请查看此answer

希望这可以帮助。


0
投票

Windows将从调用该函数的进程继承环境,这就是在C:\ Users \ myuser \ Documents中创建文件的原因。要更改目录,可以指定CreateTextFile()的完整路径,例如(CreateTextFile(“C:\ d \ a \ a.txt”)),这将在您指定的位置创建一个文件。对于你的第二个问题,你的问题是如何打印“,和”,对吧?有两种方式,一种是使用'over',当你使用'你的内容'时,你的内容没有被评估,所以特别说明\ n将按原样输出,但这并未完全满足您的需求,因为您的内容可能包含'。您可以使用“\”代替,这意味着不要为特殊字符单独使用,所以“asdf \'asdadf”将输出“asdf'asdadf”。这也是我在CreateTextFile()中加上“\”以便输出“C:\ d \ a”的原因。希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.