Страница 1 из 1

Cоздание txt с именем выделенных с добавлением постфикса

Добавлено: Вс мар 16, 2025 14:10
king_art
Уважаемые специалисты,
Помогите, пожалуйста, со скриптом, который бы создавал из выделенных файлов с любым расширением, пустые текстовые файлы с таким же названием и с добавлением постфикса (_nn) на конце*
*nn = no need
Например есть выделенные файлы:
aaa.avi
bbb.mkv
ccc.mp4
После применения скрипта создались бы:
aaa_nn.txt
bbb_nn.txt
ccc_nn.txt

Нашел, что-то похожее от Batya, но надо в параметрах каждый раз менять расширение для исходных файлов, так же применятся для всех, а не для выделенных, ну и нет постфикса в конце.
forum.wincmd.ru/viewpost.php?p=14555
Batya писал(а):
ADv писал(а):помогите, plz. нужен скрипт, который бы создавал в текущей папке текстовый файл с именем mp3-шки.

Код: Выделить всё

'==========================================================================
' Создание в текущей папке для всех файлов с указанным расширением
'   аналогичного файла с другим указанным расширением

' В параметрах вызова из TC должно быть прописано:
' "%P" {расширение исходных файлов} {расширение создаваемых файлов}
' Пример:
' "%P" mp3 txt
'==========================================================================
Dim MB
If WScript.Arguments.Count < 3 Then
  MB = MsgBox("Заданы не все параметры!", vbOKOnly + vbExclamation, "Создание новых файлов")
  WScript.Quit
End If

Dim FSO, CurrentFolder, Ext1, Ext2, oFolder, oFile, NewFilePath, oNewFile
Set FSO = CreateObject("Scripting.FileSystemObject")

CurrentFolder = WScript.Arguments(0)
Ext1          = WScript.Arguments(1)
Ext2          = WScript.Arguments(2)

If not FSO.FolderExists(CurrentFolder) Then
  MB = MsgBox("Папка " & CurrentFolder & " не существует!", vbOKOnly + vbExclamation, "Создание новых файлов")
  WScript.Quit
End If

Set oFolder = FSO.GetFolder(CurrentFolder)

For Each oFile in oFolder.Files
  If FSO.GetExtensionName(oFile.Path) = Ext1 Then
    NewFilePath = CurrentFolder & FSO.GetBaseName(oFile.Path) & "." & Ext2
    If not FSO.FileExists(NewFilePath) Then
      Set oNewFile = FSO.CreateTextFile(NewFilePath)
      oNewFile.Close
    End If
  End If
Next

Set oFolder  = Nothing
Set oFile    = Nothing
Set oNewFile = Nothing
Set FSO      = Nothing
Wscript.Quit
Отослал также на мыло.
В параметрах кнопки (команды) надо указать 3 параметра, например:
"%P" mp3 txt

Edit:
Выяснилось, что %P в параметрах кнопки надо поставить в кавычки. Иначе криво работает, если в пути папок есть пробелы. Спасибо ADv.
До сих пор не уяснил для себя, как при разборе строки параметров Гислер с кавычками работает.

Добавлено: Вс мар 16, 2025 19:00
Batya
king_art
А зачем нужен скрипт? Достаточно инструмента группового переименования (ИГП), где для "Маска для: имя файла" = "[N]_nn", "...расширения" = "txt".

Добавлено: Вс мар 16, 2025 19:15
king_art
Batya
Скрипт что бы из .avi, .mkv, mp4 и пр типов файлов, создались текстовые файлы (txt) с таким же именем, но сразу с нужным окончанием.
Так-то, пока конечно, именно групповым переименованием и пользуюсь по маске. Проще б одной кнопкой, если возможно.

Добавлено: Пн мар 17, 2025 02:29
790
king_art
Есть такое решение, но есть и недостаток - с кириллицей у меня не получается:
1. В Запуск или на кнопку вешаем:

Код: Выделить всё

Команда: cmd.exe /c @echo off &
Параметры: for /f "delims=" %%i in (%F) do fsutil file createnew "%T%%i" 0 > nul
(я думаю, этот код можно переделать и для добавления _nn)
В противоположной панели появятся нулевые файлы, которые были выделены - панели должны быть разными! Потом расширения можно удалить у всех по маске, пустым-то файлам зачем расширения? Или заменить на _nn.

А ещё где-то тут было "Создание файлов по списку", а уж создать такой список легко по Shift+F11.

Добавлено: Пн мар 17, 2025 13:18
Monarch-LFV
king_art

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /C
for %%a in ("%S") do (cd.> "%%~dpna_nn.txt")
WCMICONS.DLL,5
Создать пустые txt файлы с суффиксом '_nn' для выделенных файлов

Добавлено: Пн мар 17, 2025 14:45
king_art
Monarch-LFV
Спасибо, огромное
Все работает, это то, что было нужно.