ANSI文本提取到其他文件

时间:2019-04-07 16:37:16

标签: file encoding vbscript wsh filesystemobject

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

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中

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

希望这会有所帮助。