标签: fso

使用VBA获取扩展文件属性

尝试使用Excel VBA捕获磁盘上文件的所有文件属性,包括扩展属性.能够让它循环遍历文件并捕获基本属性(来自文件系统):

  • 文件路径
  • 文件名
  • 文件大小
  • 创建日期
  • 上次访问日期
  • 上次修改日期
  • 文件类型

还想捕获来自文件本身的扩展属性:

  • 作者
  • 关键词
  • 评论
  • 最后的作者
  • 类别
  • 学科

以及右键单击文件时可见的其他属性.

目标是创建文件服务器上所有文件的详细列表.

vba file-attributes fso

21
推荐指数
2
解决办法
10万
查看次数

使用MoveFile方法覆盖vbscript中Destination中的文件问题?

我有一个用于将文件从源目录移动到目标目录的vbscript.目前脚本的工作方式是我有一个读入的映射文件(将id映射到文件夹类型).移动的每个文件都以id开头,目标将基于id映射到的内容.我读入映射文件并为每个要移动的文件构建目标路径.这一切都按预期工作,问题是当我尝试移动目标目录中已存在的文件时,文件不会从源目录移动.基本上我希望它覆盖目标目录中的文件(如果它已经存在).目前,我的主要命令是:

fso.MoveFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name
Run Code Online (Sandbox Code Playgroud)

有没有办法将此默认设置为始终覆盖destionation目录中的文件(如果已存在)?

vbscript file-io fso

15
推荐指数
2
解决办法
5万
查看次数

用VBS读取每行一行的txt文件

我正在尝试这段代码:

filename = "test.txt"
listFile  = fso.OpenTextFile(filename).ReadAll
listLines = Split(listFile, vbCrLf)
For Each line In listLines
   WScript.Echo line 
   'My Stuff
Next
Run Code Online (Sandbox Code Playgroud)

或者这个:

filename = "test.txt"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(filename, ForReading)
    Do Until f.AtEndOfStream
      myLine = f.ReadLine
      WScript.Echo myLine
      'My Stuff
    Loop
Run Code Online (Sandbox Code Playgroud)

为什么在这两种情况下它同时回应所有线路,当然我无法一行一行地工作?任何的想法?

vbscript fso

10
推荐指数
1
解决办法
5万
查看次数

访问具有长路径的文件(超过260)

我正在使用Microsoft Scripting Runtime(FSO)解析文件夹并生成所有内容的列表,文件夹在网络上,结果路径最终超过260.我的最小代码如下: -

Private Sub ProcessFolder(ByVal StrFolder As String)
Dim Fl              As File
Dim Fldr            As Folder
Dim RootFldr        As Folder

Set RootFldr = FS.GetFolder(StrFolder)

    For Each Fl In RootFldr.Files
        Debug.Print Fl.Path
    Next

    For Each Fldr In RootFldr.SubFolders
        DoEvents
        ProcessFolder Fldr.Path
    Next

Set RootFldr = nothing    
End sub
Run Code Online (Sandbox Code Playgroud)

在某个级别StrFolder长度变为259,Set RootFldr ...文件夹行工作但是For Each Fl In RootFldr.Files给出了错误76: Path not found,可能是因为内容导致路径突破260限制.

查看Windows资源管理器时,文件夹中有文件.我正在使用Excel作为此代码的主机,因为我将结果输出到工作簿.

为了清楚地了解我的问题及其背景,我需要使用FSO(很高兴能够显示替代品,如果它们存在)来访问网络路径深度超过260个字符的文件.我需要它作为FSO,因为我的工具是获取文件夹路径和文件路径,名称,大小创建和修改.

excel vba filesystemobject fso

7
推荐指数
2
解决办法
4451
查看次数

如何使用Power Point VBA代码逐个读取文本文件中的行?

此代码将从文本文件中读取一行:

set file = CreateObject("Scripting.FileSystemObject").OpenTextFile("c:\number.txt", 1)
text = file.ReadLine
MsgBox text
Run Code Online (Sandbox Code Playgroud)

如何从同一个文件中一行接一行地重复读取?我猜,我应该在这里使用一个循环,对吧?我需要它在第一次迭代时从文件中读取第一行,在第二次迭代时读取第二行,在第三次迭代时读取第三行,依此类推直到所有行都被读取.我该怎么做?

重要的补充:我需要代码逐一操作每一行 - 而不是一次完成!

file-io command-line newline fso

4
推荐指数
1
解决办法
2万
查看次数

将FileSystemObject保存为UTF

如何在utf-8中保存文件?

Dim FSO, File   
Set FSO = Server.CreateObject("Scripting.FileSystemObject")   
Set File = FSO.OpenTextFile(Path,2,true,-1)   
File.Write(xml1)   
File.Close   
Set File = Nothing  
Set FSO = Nothing  
Run Code Online (Sandbox Code Playgroud)

utf-8 asp-classic fso

3
推荐指数
1
解决办法
4653
查看次数

如何解决用户定义类型未定义的错误?

以下是在文件夹中搜索“requirements”等文件夹的过程。当开始逐步通过时,我收到一条错误消息,因为FileSystemObject

用户定义类型未定义

我错过了什么?

Sub GetSubFolders()

Dim f As Folder, sf As Folder, myFile As File
Dim fso As New FileSystemObject                   ' <=========== ERROR HERE

Set f = fso.GetFolder("C:\Users\C58227\Desktop\Projects\CRDs")

For Each sf In f.SubFolders
    For Each mySubFolder In myFolder.SubFolders
        For Each myFile In mySubFolder.Files
            If myFile.Name Like "Requirements" Then
                MsgBox myFile.Name
                Exit For
            End If
        Next

        MsgBox "Else"
    Next
Next

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba fso

3
推荐指数
1
解决办法
7204
查看次数

VBScript从txt文件和列表中读取多个文件名,这些文件名在目录中不存在

我是VB脚本的新手,我试图找到一种方法:

  1. 读取在特定文本文件中写为文本行的文件名列表.
  2. 检查这些文件是否与脚本位于同一目录中.
  3. 将不存在的文件的名称写入输出文件(missing.txt)

根据我的研究,似乎一个好的方法是使用FSO并读取整个文本文件,创建一个数组,然后循环检查文件是否存在于目录中,然后记录到"missing.txt",如果它没有.

但是,这样做,不会出现类型不匹配,因为.txt中的文件名是一个字符串,目录中的文件本身就是对象吗?

我该如何比较?我可以从概念上理解这一点,但我不知道从哪里开始使用语法.

谢谢您的帮助.

arrays vbscript type-mismatch fso

2
推荐指数
1
解决办法
3286
查看次数

我可以使用FileSystemObject使用其索引从文件夹中获取单个文件吗?

如果文件夹中只有一个文件,我可以在知道其名称的情况下选择它或者遍历文件夹中的文件吗?

(代码是VBS,但它可以是任何东西,FSO在这里是有趣的部分.)

这不适合我:

dim fso
set fso = CreateObject("Scripting.FileSystemObject")
dim myFolder
Set myFolder = fso.getFolder("E:\test")
Dim myfiles
Set myfiles = myFolder.Files

WScript.Echo myfiles.Item(0).Path
Run Code Online (Sandbox Code Playgroud)

两者都没有WScript.Echo myfiles(0).Path奏效.(测试指数0,1都失败了.)

使用for each来获得一个文件似乎有点过分.此外,我不应该以某种方式迭代一个简单的For循环,而不是For Each?所以必须有索引......我似乎无法找到它们.

vbscript filesystemobject fso

2
推荐指数
1
解决办法
3469
查看次数

如何在javascript中乘以空格以便在ActiveX FSO Write()方法中使用

例如:

var a = " ";
var b = "";
b = a * 8;
alert(b +"this far to the right");
Run Code Online (Sandbox Code Playgroud)

注意:我不想使用,因为ActiveX FSO将用于写入文本文件而不是html文件.所以它只需要空格:

我正在努力实现的更详尽的细节:

我试图让ActiveX FSO在提交表单后从HTML订单表单写入文本文件,然后继续将订单写入文本文件.文本文件需要采用特定格式,以便Microsoft Dynamics接受作为导入销售.

如下所示:客户代码 空间 商品代码 空间 数量 空间:

import.txt减去字符串长度,其中slot =要填充的剩余空格.

C242299A *4 white spaces* 2890 *12 white spaces* 20 *6 white spaces*
[------------][----------------][--------]
12 char slots    16 char slots   8 char slots
Run Code Online (Sandbox Code Playgroud)

write.js将创建这个import.txt文件(这是我需要帮助的部分)

var customercode = document.getElementById("customercode").value;
var itemcode = document.getElementById("itemcode").value;
var quantity = document.getElementById("quantity").value;

var fso = new ActiveXObject("Scripting.FileSystemObject");
var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery filesystemobject activexobject fso

0
推荐指数
1
解决办法
1312
查看次数