Создание файла с содержимым на основе имени другого файла
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
Создание файла с содержимым на основе имени другого файла
День добрый, у меня стоит такая задача:
Необходим скрипт, который при запуске использует имя файла под курсором (выделяется только один файл) и при запуске создает другой файл с заданным расширением и параметрическим текстом (весьма коротким). Надо это для оформление каталога для сетевого проигрывателя.
В программировании я, к сожалению, не очень силен, буду рад помощи.
[mod="Моторокер"]Простой вопрос по созданию файла
Тема переименована на основании п.6 правил.[/mod]
Необходим скрипт, который при запуске использует имя файла под курсором (выделяется только один файл) и при запуске создает другой файл с заданным расширением и параметрическим текстом (весьма коротким). Надо это для оформление каталога для сетевого проигрывателя.
В программировании я, к сожалению, не очень силен, буду рад помощи.
[mod="Моторокер"]Простой вопрос по созданию файла
Тема переименована на основании п.6 правил.[/mod]
KrechetovRS
Если кодировка не имеет значения, то можно обойтись кнопкой, создающий файл в кодировке DOS:
Если кодировка не имеет значения, то можно обойтись кнопкой, создающий файл в кодировке DOS:
Код: Выделить всё
TOTALCMD#BAR#DATA
cmd /c echo
Весьма короткий текст>%O.txt
shell32.dll,114
Текст в файл
1
-1
Нет, я не сплю. Я просто медленно моргаю.
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
Спасибо за ответ, вопрос был поставлен по идиотски.
Более понятное описание задачи:
1. есть файл "А в этой сказке было так… (1984).mkv"
абсолютный путь к файлу: "\\192.168.0.9\Public\Мультфильмы\СССР\!А-Д\А в этой сказке было так… (1984).mkv"
2. когда на нем курсор и запускаем скрипт, результатом хотелось бы получить файл "А в этой сказке было так… (1984).m3u" с текстом внутри: "nfs://192.168.0.9:/Public/Мультфильмы/СССР/!А-Д/А в этой сказке было так… (1984).mkv"
абсолютной путь получен при помощи скрипта "Копировать имена файлов с UNC-путями" в Total Commander. Можно, конечно все руками сделать, но честно лень менять прямой слеш на обратный, т.к. файлов реально много.
Спасибо
Более понятное описание задачи:
1. есть файл "А в этой сказке было так… (1984).mkv"
абсолютный путь к файлу: "\\192.168.0.9\Public\Мультфильмы\СССР\!А-Д\А в этой сказке было так… (1984).mkv"
2. когда на нем курсор и запускаем скрипт, результатом хотелось бы получить файл "А в этой сказке было так… (1984).m3u" с текстом внутри: "nfs://192.168.0.9:/Public/Мультфильмы/СССР/!А-Д/А в этой сказке было так… (1984).mkv"
абсолютной путь получен при помощи скрипта "Копировать имена файлов с UNC-путями" в Total Commander. Можно, конечно все руками сделать, но честно лень менять прямой слеш на обратный, т.к. файлов реально много.
Спасибо
Если я правильно понял:
Путь к утилите TCMC должен совпадать с приведённым в скрипте.
Если надо, могу поставить условие, чтобы обрабатывались только MKV из всего выделенного.
Зачем менять, если указано, что нужен именно прямой в содержимом файла?
Код: Выделить всё
' Создать файлы с именами выделенных в каталоге сетевого устройства
' файлов, расширением 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Если надо, могу поставить условие, чтобы обрабатывались только MKV из всего выделенного.
KrechetovRS писал(а):лень менять прямой слеш на обратный
Это никакой не скрипт, а обычная внутренняя команда ТС cm_CopyNetNamesToClip.KrechetovRS писал(а):при помощи скрипта "Копировать имена файлов с UNC-путями"
Последний раз редактировалось Flasher Пн июн 27, 2011 11:42, всего редактировалось 1 раз.
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
В каком смысле? Был запрошен скрипт. Я его написал.
KrechetovRS
Ещё один вариант vbs-скрипта:
Ещё один вариант vbs-скрипта:
Код: Выделить всё
'=====================================================================
' Формирование для каждого файла из файла-списка 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()
Последний раз редактировалось Batya Вт июн 28, 2011 11:08, всего редактировалось 2 раза.
Нет, я не сплю. Я просто медленно моргаю.
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
KrechetovRS
Мой скрипт работает?
Мой скрипт работает?
Последний раз редактировалось Flasher Пн июн 27, 2011 12:06, всего редактировалось 1 раз.
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49
KrechetovRS
Прочти снизу этого поста.
Прочти снизу этого поста.
-
KrechetovRS
- Сообщения: 14
- Зарегистрирован: Вт июн 21, 2011 22:49