用vbs创建隐藏的txt文件

Posted

技术标签:

【中文标题】用vbs创建隐藏的txt文件【英文标题】:create hidden txt file with vbs 【发布时间】:2019-05-07 04:30:59 【问题描述】:

我目前有一个 vbscript,它在目录中创建一个 txt 文件并打开它,但我喜欢让它隐藏文件, 目前我有这个代码:

Set objFSO=CreateObject("Scripting.FileSystemObject")

outFile="C:\Users\User\Desktop\New map"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "test line 1" & vbCrLf
objFile.Write "test line 2" & vbCrLf
objFile.Close

CreateObject("WScript.Shell").Run("""C:\Users\User\Desktop\New map""")

【问题讨论】:

【参考方案1】:

你可以这样设置属性

Const cHidden = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")

outFile = "C:\Users\User\Desktop\New map"
Set objFile = objFSO.CreateTextFile(outFile, True)
objFile.Write "test line 1" & vbCrLf
objFile.Write "test line 2" & vbCrLf
objFile.Close

Set mapFile = objFSO.GetFile(outFile)
mapFile.Attributes = cHidden

CreateObject("WScript.Shell").Run Chr(34) & outFile & Chr(34)

快速参考 --> https://www.thevbprogrammer.com/ch06/06-09-fso.htm https://ss64.com/vb/filesystemobject.html

【讨论】:

.Run 的 arg 需要引号。 不要使用magic numbers,将值定义为命名常量。在这种情况下Const Hidden = 2Const ReadOnly = 1 并像这样使用它们mapFile.Atributes = Hidden + ReadOnly @Ekkehard.Horner - 我不知道 OP 正在创建什么样的文件。如果它类似于批处理文件,则该变量不需要引号。 文件名包含空格的事实足以要求用双引号括起来。

以上是关于用vbs创建隐藏的txt文件的主要内容,如果未能解决你的问题,请参考以下文章

如何打开.vbs格式的文件?

关于VBS读取TXT文本问题

vbs实现的支持拖动的txt文本切割器

Vbs读取txt文本,高手进

vbs逐行读取txt文件并且逐行复制文件到其它文件中

vbs