标签: filesystemobject

使用FileSystemObject的文件权限 - CScript.exe说一件事,Classic ASP说另一件事

我有一个经典的ASP页面 - 用JScript编写 - 使用Scripting.FileSystemObject将文件保存到网络共享 - 而且它不起作用.("没有权限")

ASP页面在IIS下使用Windows身份验证运行,并启用了模拟.

如果我通过CScript.exe在本地运行以下代码块:

var objNet = new ActiveXObject("WScript.Network");
WScript.Echo(objNet.ComputerName);
WScript.Echo(objNet.UserName);
WScript.Echo(objNet.UserDomain);

var fso = new ActiveXObject("Scripting.FileSystemObject");
var path = "\\\\myserver\\my_share\\some_path";
if (fso.FolderExists(path)) {
    WScript.Echo("Yes");
} else {
    WScript.Echo("No");
}
Run Code Online (Sandbox Code Playgroud)

我得到(预期)输出:

MY_COMPUTER
dylan.beattie
MYDOMAIN
Yes
Run Code Online (Sandbox Code Playgroud)

如果我在.ASP页面中运行相同的代码,则将Response.Write替换为WScript.Echo,我得到以下输出:

MY_COMPUTER
dylan.beattie
MYDOMAIN
No
Run Code Online (Sandbox Code Playgroud)

现在 - 我的理解是WScript.Network对象将检索实际运行代码的线程的当前安全凭证.如果这是正确的 - 那么为什么在同一个域上的同一个用户从CScript.exe到ASP获得不同的结果?如果我的ASP代码运行为dylan.beattie,那么为什么我不能看到网络共享?如果它不像dylan.beattie 那样运行,为什么WScript.Network会认为它是?

permissions wsh filesystemobject asp-classic

6
推荐指数
1
解决办法
6770
查看次数

如果文件存在则删除该文件

我有一个用于重命名文件的vbscript.我需要在脚本中实现的是删除"新文件"(如果它已经存在).

例如:我有一批名为11111111.dddddddd.pdf的文件,其中文件重命名为11111111.pdf.问题是,当我重命名为11111111.pdf格式时,我结束了重复的文件,然后使脚本失败,因为你显然不能拥有2个同名文件.我需要它重命名第一个,但然后删除重命名的其他一个.

这是我到目前为止我的IF语句,但它不起作用,我得到错误,说"类型不匹配:'FileExists".我不知道如何让这部分代码按照我想要的方式执行.任何帮助或建议将不胜感激.

dim infolder: set infolder = fso.GetFolder(IN_PATH)
dim file
for each file in infolder.files

dim name: name = file.name
dim parts: parts = split(name, ".")
dim acct_, date_
acct_ = parts(0)
date_ = parts(1)


' file format of a.c.pdf
if UBound(parts) = 2 then
    ' rebuild the name with the 0th and 2nd elements
    dim newname: newname = acct_ & "." & parts(2)
    ' use the move() method to effect the rename
    file.move fso.buildpath(OUT_PATH, newname)  

    if  newname = …
Run Code Online (Sandbox Code Playgroud)

vbscript filesystemobject

6
推荐指数
1
解决办法
11万
查看次数

根据"上次修改日期"循环浏览文件夹中的所有文件

我需要按照"上次修改日期"的降序循环遍历给定文件夹中的文件.

在循环的第一次迭代中,我需要能够打开最近修改的文件进行读取并关闭它.在第二次迭代中,我需要能够打开第二个最近更新的文件进行读取和关闭等.

  1. 是否有内置方法允许FileSystemObject对文件进行排序或者我们是否必须编写自定义排序例程?

  2. 如果我们必须使用自定义排序例程,是否可以在没有多个函数的情况下编写它?即主函数中的所有代码.

  3. 速度是一个值得关注的问题,因为需要对很多文件进行排序.因此,任何自定义程序都应该有效.

vbscript loops last-modified filesystemobject

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

如何在VBA中使用FileSystemObject替换文本文件行中的字符串?

我正在尝试使用FileSystemObject方法在文本文件中查找特定行,并在该行内替换特定字符串.我对此比较陌生,因为我当前的代码已经excel打开文本文件并替换我需要它替换然后保存并关闭它.这种方式不再是一种选择,因为excel打开文本文件需要太长时间并保留文件.

到目前为止,我已经走了多远.

-

Sub FindLines()

Const ForReading = 1

Set FSO = CreateObject("Scripting.FileSystemObject")

Set objFSO = FSO.OpenTextFile("C:\Users\Carella Home\Desktop\boomboom.txt", ForReading,     False)

Do Until objFSO.AtEndOfStream = True

    go = objFSO.ReadLine

    If InStr(1, go, "ant", vbTextCompare) > 0 Then

        bo = Replace(go, "t", "wow")

    End If

Loop

objFSO.Close

Set objFSO = FSO.OpenTextFile("C:\Users\Carella Home\Desktop\boomboom.txt", 2)

End Sub
Run Code Online (Sandbox Code Playgroud)

-

我能做的最好是打开文件写入,但我不知道如何找到该行并将其替换为我需要替换它的行.

如果您愿意帮助/指导我正确的方向,请告知我们您需要更多信息.我经常搜索并看到人们建议其他方法.我需要学习如何以这种方式编辑线条.有人可以帮帮我吗?

提前致谢!

-Anthony C.

excel vba text file filesystemobject

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

在不使用FileSystemObject的情况下删除目录及其内容(文件,子目录)

我想知道是否可以重写这段代码:

Private Sub PrepareDir(ByVal dir As String)
    Dim fso As New FileSystemObject
    If fso.FolderExists(dir) Then Call fso.DeleteFolder(dir, True)
    Call fso.CreateFolder(dir)
End Sub
Run Code Online (Sandbox Code Playgroud)

使用VBA语句:Kill,MkDir等.这个中最"困难"的部分 - 删除非空目录.使用FSO可以轻松完成,但如何在没有FSO的情况下完成它?

excel vba excel-vba filesystemobject

6
推荐指数
2
解决办法
3万
查看次数

通过VBA获取laccdb文件的内容

我希望能够通过VBA查看访问数据库的laccdb文件的内容,以便我可以使用它来提醒用户(通过按钮)数据库中还有谁.

我特别不想使用第三方工具.我尝试过使用:

Set ts = fso.OpenTextFile(strFile, ForReading)
strContents = ts.ReadAll
Run Code Online (Sandbox Code Playgroud)

如果数据库中只有1个用户,则此工作正常.但对于多个用户来说,它可能会被大概非ASCII字符弄糊涂,并在一次输入后进入这种情况:

完全胡言乱语

有没有人有什么建议?如果我只是在Notepad ++中打开文件就没问题了......


最终使用的代码如下(我不需要标题并删除了一些未使用的代码):

Sub ShowUserRosterMultipleUsers()
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset

cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.Open "Data Source=" & CurrentDb.Name

Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
While Not rs.EOF
    Debug.Print rs.Fields(0)
    rs.MoveNext
Wend

End Sub
Run Code Online (Sandbox Code Playgroud)

ms-access vba filesystemobject access-vba ms-access-2013

6
推荐指数
1
解决办法
4256
查看次数

如何确定文件是否使用VBS锁定?

我正在编写一个VB脚本来更新网络上的一些文件.在开始之前,我想知道是否有任何文件被锁定.我真正做任何更新之前,我想这样做.

我知道当我尝试更换文件时,如果文件被锁定,我可以处理错误,但我真的想知道在开始更新任何文件之前是否有任何文件被锁定.

有没有办法看到使用VBS锁定文件(除了尝试替换它)?

vbscript wsh filesystemobject

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

如何使用FileSystemObject在JavaScript中读取文件

我想用FileSystemObject读取一个文件.我的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Read json</title>
</head>

<body>
<script type="text/javascript">

function readFile(filename){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var ForReading = 1;
    var f1 = fso.OpenTextFile(filename, ForReading);
    var text = f1.ReadAll();
    f1.close();
    return text;
}

myJSONText = "text.txt";
var myObject = readFile(myJSONText);//eval('(' + myJSONText + ')');

document.write(myObject.name);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript file-io filesystemobject

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

在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么?

我正在阅读有关如何声明 FileSystemObjects 对象的信息,发现了令人困惑的信息。是因为声明方式不同吗?

我向您展示了我发现的一些声明和定义 FileSystemOjbect 对象的方法:

  1. Dim FSO As FileSystemObject Set FSO = New FileSystemObject

  2. Dim FSO As New FileSystemObject

  3. Dim FSO As Object Set FSO = CreateObject("scripting.filesystemobject")

声明 FileSystemObject 对象的正确方法是什么?

vba filesystemobject declare

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

文件系统对象后期绑定

我在File System Object后期绑定方面遇到问题。这是我的代码:

\n\n
Dim WordA As Object \'aplikacja programu Word\nDim PlikW As Object \'plik Worda\nDim Nazwa As Object \'obszar Worda ze zdefiniowan\xc4\x85 nazw\xc4\x85\nDim Zakres As Range \'zakres danych u\xc5\xbcywany do wiadomo\xc5\x9bci\nDim NrRaportu As Integer \'Numer tworzonego raportu\nDim Katalog As String \'pe\xc5\x82na nazwa katalogu, w kt\xc3\xb3rym zapisywane s\xc4\x85 wiadomo\xc5\x9bci\nConst Raport_szablon = "Raport_szablon.docx" \'zazwa pliku z szablonem\nDim fso As Object \'Objekt FileSystemObject\n\n\'1. Wczytanie danych\nSet Zakres = Range("R2:Z" & Cells(Rows.Count, "R").End(xlUp).Row)\nKatalog = ThisWorkbook.Path & "\\Raporty"\nSet fso = CreateObject("FileSystemObject")\nIf Not fso.FolderExists(Katalog) …
Run Code Online (Sandbox Code Playgroud)

excel vba filesystemobject

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