我复制了代码,但不知道它是如何工作的,但我将其作为宏进行了测试。
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中
答案 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)
要回答您的问题:
%tmp%
?您可以通过在Shell对象上使用
.ExpandEnvironmentStrings
来做到这一点,
Set wShell = CreateObject("WScript.Shell")
sTempPath = wShell.ExpandEnvironmentStrings("%TMP%")
您必须通过像这样
"
一样的复制方式来纠正在字符串中添加引号""
的方式:
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。
希望这会有所帮助。