我正在尝试获取共享文件夹上的文件列表(包括其完整路径名)-例如,而不是
File1.txt
File2.txt
在 上\\sharename\foldername
,我试图获得:
D:\something\foldername\File1.txt
D:\something\foldername\File2.txt
答案这个问题(如何在 Windows 中获取共享的完整路径)很有帮助,并展示了如何使用 WMIC 获取共享的真实驱动器路径。但我想进一步了解共享内文件的更多信息。注意 - 共享将在本地访问,但有多个驱动器号,我试图避免在脚本中硬编码任何路径。
答案1
如果您已安装 PowerShell,您可以执行以下操作:
get-childitem \\share\drive -Recurse| foreach-object -process { $_.FullName }
答案2
设法让它在 VBscript 中运行,但更倾向于使用 powershell。我以前从未使用过 VBscript,所以它可能效率低下且混乱。
输入是 \share\folder\folder 并且它会在该文件夹中创建文件列表。
Dim Arg
Set Arg = WScript.Arguments
strPath = WScript.Arguments(0)
strPath = Replace(strPath, "\\", "")
arrPath = Split(strPath, "\")
strComputer = arrPath(0)
strShare = arrPath(1)
strFolder = arrPath(2)
strPath0 = WScript.Arguments(0)
sDate = Replace(Date, "/", "-")
filename = strPath0 & "\BackupFileList-" & sDate & ".txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile(filename, ForAppending, True)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Share Where Name = '" & strShare & "'")
For Each objItem in colItems
dirPath = objItem.Path
Next
Set folder = objFSO.GetFolder(WScript.Arguments(0))
Set files = folder.Files
For each folderIdx In files
objTextFile.WriteLine(dirPath & "\" & strFolder & "\" & folderIdx.Name)
Next
objTextFile.Close