ฉันจะรับรายการไฟล์ที่ผ่านการรับรองจากโฟลเดอร์แชร์ได้อย่างไร


2

ฉันกำลังพยายามรับรายการไฟล์ในโฟลเดอร์ที่แชร์ (ด้วยชื่อพา ธ ที่สมบูรณ์) - ตัวอย่างเช่นแทนที่จะเป็น

File1.txt 

File2.txt

บน \\sharename\foldernameฉันกำลังพยายามที่จะได้รับ:

D:\something\foldername\File1.txt

D:\something\foldername\File2.txt

คำตอบของ คำถามนี้ (วิธีการรับเส้นทางที่มีคุณสมบัติครบถ้วนของการแชร์ใน windows) มีประโยชน์และแสดงวิธีการรับเส้นทางที่ใช้ไดรฟ์จริงสำหรับการแบ่งปันโดยใช้ WMIC แต่ฉันอยากจะขอข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ภายใน หุ้น หมายเหตุ - การแชร์จะสามารถเข้าถึงได้ในเครื่อง แต่มีตัวอักษรไดรฟ์หลายตัวและฉันพยายามหลีกเลี่ยงการเข้ารหัสเส้นทางใด ๆ ในสคริปต์


คุณใช้อะไร VBscript? Jscript? Powershell? งูใหญ่? C #?
surfasb

ตอนนี้เป็นเพียงไฟล์แบตช์เก่าธรรมดา แต่สามารถใช้ PowerShell แทน ในที่สุดมันจะเป็นส่วนหนึ่งของงานตัวแทนของ SQL Server ที่เรียก NetBackup เพื่อเริ่มการพุชเทปบนโฟลเดอร์ที่ใช้ร่วมกัน (โดยไม่ต้องระบุตัวอักษรชื่อไดรฟ์) - การใช้โฟลเดอร์ที่ใช้ร่วมกันกับ NetBackup ดูเหมือนว่าจะทำงานได้ดีใน Windows Server 2008 แต่ไม่ใช่ 2008 R2 กำลังคิดที่จะสร้างไฟล์ข้อความที่มีรายชื่อของพา ธ / ชื่อไฟล์ที่ผ่านการรับรองโดยสมบูรณ์ในโฟลเดอร์แชร์แล้วใช้มันเป็นรายการสิ่งที่ต้องสำรองข้อมูล
Emily

คำตอบ:


4

หากคุณติดตั้ง PowerShell คุณสามารถทำสิ่งต่อไปนี้

get-childitem \\share\drive -Recurse| foreach-object -process { $_.FullName }

ขอบคุณ! ที่ช่วยในการ ในกรณีนี้ฉันใช้การแบ่งปันที่เรียกว่า "\\ SID \ SID_Backup \" และเส้นทางในพื้นที่คือ "B: \ SID_Backup \" - โดยสมมติว่าฉันไม่รู้ว่ามันเป็นไดรฟ์ B คุณรู้ไหมว่าเป็นไปได้ จะให้มันคืนพา ธ ของไฟล์ด้วยอักษรชื่อไดรฟ์แทนที่ \\ share \ drive ได้อย่างไร
Emily

0

จัดการเพื่อให้มันทำงานใน 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.