Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как пакетно отделить имена файлов от пути? (http://forum.oszone.net/showthread.php?t=269685)

ruslaw 10-10-2013 15:30 2232039

Как пакетно отделить имена файлов от пути?
 
Есть список полных путей файлов в текстовом файле (допустим его зовут List.txt)
Типа:
D:\folderA\folderK\folderX\file1.ext1
E:\folderB\folderL\folderY\file2.ext2
F:\folderC\folderM\folderZ\file3.ext3
Имена как папок, так и файлов содержат русские буквы, пробелы, точки, запятые, тире.
Хотелось обработать его скриптом bat(js/vbs) чтобы на выходе получился текстовый файл (.csv) с колонками содержащими
1) исходную колонку; 2) путь без имени файла; 3) имя файла без пути; 4) имя файла без расширения; 5) расширение без имени
D:\folderA\folderK\folderX\file1.ext1 D:\folderA\folderK\folderX\ file1.ext1 file1 ext1
E:\folderB\folderL\folderY\file2.ext2 E:\folderB\folderL\folderY\ file2.ext2 file2 ext2
F:\folderC\folderM\folderZ\file3.ext3 F:\folderC\folderM\folderZ\ file3.ext3 file3 ext3
Возможно ли решение такой задачи?

Iska 10-10-2013 15:57 2232050

csv — это немного другое:
Код:

"D:\folderA\folderK\folderX\file1.ext1","D:\folderA\folderK\folderX\","file1.ext1","file1","ext1"
Пробуйте:
читать дальше »
Код:

Option Explicit

Dim strSourceFile
Dim strDestFile

Dim objFSO
Dim objTS
Dim strLine


strSourceFile = "C:\Песочница\035\List.txt"
strDestFile  = "C:\Песочница\035\Out.txt"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strSourceFile) Then
        Set objTS = objFSO.CreateTextFile(strDestFile, True)
       
        With objFSO.OpenTextFile(strSourceFile)
                Do Until .AtEndOfStream
                        strLine = .ReadLine
                       
                        objTS.WriteLine                              """" & _
                                strLine                            & """,""" & _
                                objFSO.GetParentFolderName(strLine) & "\"",""" & _
                                objFSO.GetFileName(strLine)        & """,""" & _
                                objFSO.GetBaseName(strLine)        & """,""" & _
                                objFSO.GetExtensionName(strLine)    & """"
                Loop
               
                .Close
        End With
       
        objTS.Close
       
        Set objTS = Nothing
Else
        WScript.Echo "Can't find source file [" & strSourceFile & "]."
End If

Set objFSO = Nothing

WScript.Quit 0


Путь Вам обязательно с завершающим слэшем?

ruslaw 10-10-2013 21:59 2232284

Завершающий слэш полезен для единообразия записи.
Спасибо за код, он мне отлично подошел.


Время: 14:11.

Время: 14:11.
© OSzone.net 2001-