ANSI 文本提取到其他文件

ANSI text extracting to other file

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

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

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

回答您的问题:

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

You can do it by using .ExpandEnvironmentStrings on a Shell object, like this:

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

You have to correct the way you add a quote " inside a string, by duplicating it, like this "":

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

希望对您有所帮助。