Comment obtenir une liste de fichiers qualifiés complets à partir d'un dossier partagé?

2

J'essaie d'obtenir une liste de fichiers dans un dossier partagé (avec leurs noms de chemin d'accès complets) - par exemple, au lieu de

File1.txt 

File2.txt

sur \\sharename\foldername, j'essaie d'obtenir:

D:\something\foldername\File1.txt

D:\something\foldername\File2.txt

La réponse à cette question (Comment obtenir le chemin qualifié complet d'un partage dans Windows) a été utile et montre comment obtenir les véritables chemins d'accès des lecteurs à l'aide de WMIC., Mais j'aimerais aller un peu plus loin pour plus d'informations. sur les fichiers dans le partage. Remarque: le partage sera accessible localement, mais il existe plusieurs lettres de lecteur et j'essaie d'éviter de coder en dur les chemins d'accès dans un script.

Emilie
la source
Qu'est-ce que vous utilisez? VBscript? jScript? Powershell? Python? C #?
surfasb
À l’heure actuelle, il s’agit simplement d’un vieux fichier de commandes, mais nous pourrions utiliser powershell à la place. En fin de compte, cela fera partie d'un travail d'agent SQL Server qui appelle NetBackup pour démarrer un transfert de bande sur un dossier partagé (sans avoir à spécifier de lettre de lecteur). L'utilisation de dossiers partagés avec NetBackup semble fonctionner correctement dans Windows Server 2008 mais pas dans 2008 R2. Je pensais générer un fichier texte avec une liste des chemins / noms de fichiers entièrement qualifiés dans un dossier partagé, puis l’utiliser comme liste des éléments à sauvegarder.
Emily

Réponses:

4

Si vous avez installé PowerShell, vous pouvez effectuer les tâches suivantes:

get-childitem \\share\drive -Recurse| foreach-object -process { $_.FullName }
weloytty
la source
Merci! Qui aide. Dans ce cas, j'utilise un partage appelé "\\ SID \ SID_Backup \" et son chemin d'accès local est "B: \ SID_Backup \" - en supposant que je ne savais pas que c'était le lecteur B, savez-vous si c'est possible? pour qu'il renvoie les chemins de fichiers avec une lettre de lecteur à la place de \\ share \ drive?
Emily
0

Géré pour le faire fonctionner dans VBscript, mais PowerShell serait préféré. Je n'ai jamais travaillé avec VBscript auparavant, alors oui, c'est probablement inefficace et compliqué.

L'entrée est \ share \ folder \ folder et crée une liste de fichiers dans ce dossier.

    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
Emilie
la source