Я хочу потом данный текст скопировать в Макрос excel и создать файл с гиперссылками на файлы в папке, в которой этот батник будет запущен.
CMD/BAT - [решено] Составить список файлов из папки в заданном виде
Это особо циничное извращение
, но вот решение, как Вы этого хотели:Код:
Код: Выделить всё
@Echo Off
cls
>nul Chcp 1251
Set "BoxIn=Z:\Box_In\У попа была собака"
Set "Mask=*.*"
Set "FileOut=Z:\Бред сивой кобылы.txt"
Set /A N=0
>"%FileOut%" (FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) DO (
Call Set /A N+=1
Call Echo ActiveSheet.Hyperlinks.Add Anchor:=Range^("A%%N%%"^), Address:="%BoxIn%\%%f", TextToDisplay:="%BoxIn%\%%f"
))
pause
Exit /BБатник сохранить в 1251 кодировке
Вот макрос Excel для создания в ячейках гиперссылок на файлы в указанной папке безо всяких txt
[spoiler]Код: [/spoiler]
Код: Выделить всё
Sub DirGiper()
MyDir = "Z:\Box_In\У попа была собака"
MyMask = "^.*\..*$"
Set Reg = CreateObject("VBScript.RegExp")
Reg.IgnoreCase = True
Reg.Pattern = MyMask
With CreateObject("Scripting.FileSystemObject")
Set Files = .GetFolder(MyDir).Files
N = 0
For Each File In Files
Filename = File.Path
If Reg.Test(Filename) Then
N = N + 1
ActiveSheet.Hyperlinks.Add Anchor:=Range("A" + CStr(N)), Address:=Filename, TextToDisplay:=Filename
End If
Next
End With
MsgBox "Done"
End SubВот VBS-скрипт (создать файл с расширением .vbs в 1251 кодировке и выполнить его), и никакого левого txt-файла и ручной работы не потребуется
[spoiler]Код: [/spoiler]
Код: Выделить всё
MyDir = "Z:\Box_In\У попа была собака"
MyMask = "^.*\..*$"
Set Reg = CreateObject("VBScript.RegExp")
Reg.IgnoreCase = True
Reg.Pattern = MyMask
Set Files = CreateObject("Scripting.FileSystemObject").GetFolder(MyDir).Files
With CreateObject("Excel.Application")
.Visible = True
.Workbooks.Add
N = 0
For Each File In Files
Filename = File.Path
If Reg.Test(Filename) Then
N = N + 1
Call .ActiveSheet.Hyperlinks.Add(.Range("A" + CStr(N)), Filename)
End If
Next
End WithЕстественно, в любом решении надо прописать свои пути.
