View previous topic :: View next topic |
Author |
Message |
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Tue Jun 21, 2011 22:53 Post subject: Создание файла с содержимым на основе имени другого файла |
|
|
День добрый, у меня стоит такая задача:
Необходим скрипт, который при запуске использует имя файла под курсором (выделяется только один файл) и при запуске создает другой файл с заданным расширением и параметрическим текстом (весьма коротким). Надо это для оформление каталога для сетевого проигрывателя.
В программировании я, к сожалению, не очень силен, буду рад помощи.
! | Моторокер: | Простой вопрос по созданию файла
Тема переименована на основании п.6 правил. | |
|
Back to top |
|
|
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Wed Jun 22, 2011 00:15 Post subject: |
|
|
Откуда берётся текст?
И где задавать имя, расширение и путь создания файла? Параметрами кнопки? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Jun 22, 2011 00:18 Post subject: |
|
|
KrechetovRS
Если кодировка не имеет значения, то можно обойтись кнопкой, создающий файл в кодировке DOS:
Code: | TOTALCMD#BAR#DATA
cmd /c echo
Весьма короткий текст>%O.txt
shell32.dll,114
Текст в файл
1
-1
|
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Thu Jun 23, 2011 22:07 Post subject: |
|
|
Спасибо за ответ, вопрос был поставлен по идиотски.
Более понятное описание задачи:
1. есть файл "А в этой сказке было так… (1984).mkv"
абсолютный путь к файлу: "\\192.168.0.9\Public\Мультфильмы\СССР\!А-Д\А в этой сказке было так… (1984).mkv"
2. когда на нем курсор и запускаем скрипт, результатом хотелось бы получить файл "А в этой сказке было так… (1984).m3u" с текстом внутри: "nfs://192.168.0.9:/Public/Мультфильмы/СССР/!А-Д/А в этой сказке было так… (1984).mkv"
абсолютной путь получен при помощи скрипта "Копировать имена файлов с UNC-путями" в Total Commander. Можно, конечно все руками сделать, но честно лень менять прямой слеш на обратный, т.к. файлов реально много.
Спасибо |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jun 23, 2011 23:14 Post subject: |
|
|
Если я правильно понял:
Code: | ' Создать файлы с именами выделенных в каталоге сетевого устройства
' файлов, расширением M3U и соответствующим NFS-путём в их содержимом
' Параметры: "Путь назначения>\"
' Пример: "%T"
'===========================================
CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Utils\TCMC\TCMC.exe CM2021")
Clip = ""
With CreateObject("InternetExplorer.Application")
.Navigate("about:blank")
Clip = Replace(.document.parentWindow.clipboardData.getData("Text"),"\","/")
.Quit
End With
With CreateObject("Scripting.FileSystemObject")
For Each F In Split(Clip, vbNewLine)
Set N = .OpenTextFile(WScript.Arguments(0)&.GetBaseName(F)&".m3u",2,True)
N.WriteLine "nfs:"&F
N.Close
Next
End With | Путь к утилите TCMC должен совпадать с приведённым в скрипте.
Если надо, могу поставить условие, чтобы обрабатывались только MKV из всего выделенного.
KrechetovRS wrote: | лень менять прямой слеш на обратный | Зачем менять, если указано, что нужен именно прямой в содержимом файла? KrechetovRS wrote: | при помощи скрипта "Копировать имена файлов с UNC-путями" | Это никакой не скрипт, а обычная внутренняя команда ТС cm_CopyNetNamesToClip.
Last edited by Flasher on Mon Jun 27, 2011 11:42; edited 1 time in total |
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Sat Jun 25, 2011 00:43 Post subject: |
|
|
Спасибо огромное, попробую |
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Mon Jun 27, 2011 00:03 Post subject: |
|
|
М-да попробовал, утилиту скачал, а что дальше то делать? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jun 27, 2011 00:22 Post subject: |
|
|
В каком смысле? Был запрошен скрипт. Я его написал. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jun 27, 2011 09:30 Post subject: |
|
|
KrechetovRS
Ещё один вариант vbs-скрипта:
Code: | '=====================================================================
' Формирование для каждого файла из файла-списка m3u-файла,
' с содержимым вида:
' "nfs:<//ip-адрес:>|<диск:>/<Путь>/<к файлу>/<из файла-списка>/<имя файла>.<расширение>"
'
' Параметры:
' {файл-список}
'
' Примеры параметров при вызове из TC:
' %L
'=====================================================================
Option Explicit
Dim FSO, F, F1, FF, Str, D, N
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not .AtEndOfStream
F = Trim(.ReadLine)
If F <> "" Then
If FSO.FileExists(F) Then
Str = FSO.GetFile(F).Path
Set D = FSO.GetDrive(FSO.GetDriveName(F))
N = InStr(Str, ":")
If (D.DriveType = 3) And (N > 0) Then Str = D.ShareName & Mid(Str, N+1)
If Left(Str, 2) = "\\" Then
N = InStr(3, Str, "\", 1)
Str = Left(Str, N-1) & ":" & Mid(Str, N)
End If
F1 = FSO.GetParentFolderName(F) & "\" & FSO.GetBaseName(F) & ".m3u"
Set FF = FSO.OpenTextFile(F1, 2, True)
FF.WriteLine "nfs:" & Replace(Str, "\", "/")
FF.Close
End If
End If
Loop
.Close
End With
Set D = Nothing
Set FF = Nothing
Set FSO = Nothing
Wscript.Quit()
|
_________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Tue Jun 28, 2011 11:08; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jun 27, 2011 11:29 Post subject: |
|
|
Batya
%L тут неуместен. Речь идёт об UNC-путях. |
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Mon Jun 27, 2011 12:04 Post subject: |
|
|
Получается не тот текст в файле:
Надо - nfs://192.168.0.9:/Public/Мультфильмы/СССР/!А-Д/А в этой сказке было так… (1984).mkv
Имеем - nfs:Y:/Мультфильмы/СССР/!А-Д/А в этой сказке было так… (1984).mkv |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jun 27, 2011 12:06 Post subject: |
|
|
KrechetovRS
Мой скрипт работает?
Last edited by Flasher on Mon Jun 27, 2011 12:06; edited 1 time in total |
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Mon Jun 27, 2011 12:06 Post subject: |
|
|
made by Batya
Добавлено спустя 2 минуты:
to Flasher
твой совсем не работает.
запрашивает доступ к буферу обмена и на этом - все ( |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
|
Back to top |
|
|
KrechetovRS
Joined: 21 Jun 2011 Posts: 14
|
(Separately) Posted: Mon Jun 27, 2011 12:16 Post subject: |
|
|
Flasher
теперь ничего не происходит |
|
Back to top |
|
|
|