У меня есть список командных файлов. Я хочу перенести все содержимое всех файлов в один блокнот или таблицу Excel, составив список.
3 ответа
0
Я бы сделал это в PowerShell. Предполагая, что все командные файлы размещены в 1 папке.
----- Скопируйте и вставьте весь текст ниже этой строки в 1 скрипт-файл -----
#### Determine the location of all batchfiles
$BatchesFolder = "E:\Batches"
#### Determine the file for all collected data
$resultfile = "E:\Data\results.txt"
#### Read all files in batch folder
$batchfiles = (Get-ChildItem $BatchesFolder).fullname
#### Read each file and store data in result file
Foreach ($file in $batchfiles)
{
"--- Content of file $file ---" | Out-File -FilePath $resultfile -Append
get-content $file | Out-File -FilePath $resultfile -Append
}
0
Использование cmd.exe
:
type C:\PathToBatchFiles\* > C:\PathToOutputFolder\OutputFile.txt
Содержимое каждого файла в каталоге PathToBatchFiles будет напечатано в OutputFile.txt без каких-либо разделителей имени файла.
0
Это из Excel, используя VBA.
У меня есть несколько .bat файлов в папке с названием Belfry:
Запуск этого макроса VBA :
Sub BatLister()
Dim s1 As Worksheet, s2 As Worksheet
Dim WhereToLook As String, FileName As String
Dim fPath As String, FileSpec As String
Dim L As Long, i As Long, j As Long
Set s1 = Sheets("bat dir")
Set s2 = Sheets("bat list")
s1.Cells.Clear
s2.Cells.Clear
WhereToLook = "C:\Users\garys\Documents\Belfry\*.bat"
fPath = "C:\Users\garys\Documents\Belfry\"
L = 1
FileName = Dir(WhereToLook)
FileSpec = fPath & FileName
Do Until FileName = ""
s1.Cells(L, 1) = FileSpec
L = L + 1
FileName = Dir()
FileSpec = fPath & FileName
Loop
j = 1
For i = 1 To L - 1
FileSpec = s1.Cells(i, 1).Value
s2.Cells(j, 1) = FileSpec
j = j + 1
Close #2
Open FileSpec For Input As #2
Do While Not EOF(2)
Line Input #2, TextLine
s2.Cells(j, 2) = TextLine
j = j + 1
Loop
Next i
Close #2
End Sub
выдаст список всех .bat файлов в папке.
Имена файлов в столбце A и содержимое файла в столбце B: