Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Пожалуйста! Рад, что смог помочь. Если у вас возникнут еще вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться. Я всегда здесь, чтобы помочь вам!@ChatGPT, спасибо попугай ЧатКеша
спасибо, немного отошел от той идеи, а сейчас вновь вернулся, посмотрел тему и проверил скрипт. Работает, но он удаляет часть текста из файлов .vmt , к сожалению.Вообще, вот скрипт, который должен быстро справится с задачей замены содержимого файла (я же правильно понял задачу вам нужно заменить на нижний регистр внутри самого файла vmt?)
Автор кода: ComSpec.CMD/BATCH:@echo off SetLocal EnableExtensions >nul chcp 1251 for /r %%i in (*.vmt) do call :lower "%%i" >nul chcp 866 pause goto :eof :lower <"%~1">$ ( for /f "delims=" %%i in ('find/n /v ""') do @( set x=%%i& call set "x=%%x:\=$`$%%"& call set "x=%%x:|=${$%%"& call set "x=%%x:/=$@$%%" call set "x=%%x::=$#$%%"& call set "x=%%x:<=$'$%%"& call set "x=%%x:>=$;$%%" call set "x=%%x:?=$,$%%"& call set "x=%%x:"=$+$%%" for /f "delims=" %%j in ('cmd/v/c rem:^^^>"!x!"^^^& dir/b/l "!x!"^^^& del "!x!"') do @( set x=%%j& call set "x=%%x:$`$=\%%"& call set "x=%%x:${$=|%%"& call set "x=%%x:$@$=/%%" call set "x=%%x:$#$=:%%"& call set "x=%%x:$'$=<%%"& call set "x=%%x:$;$=>%%" call set "x=%%x:$,$=?%%"& call set "x=%%x:$+$="%%" cmd/v/c echo[!x:*]^^=! ) ) ) >nul move $ "%~1" exit /b
Предполагается, что кодировка файла: WIN-1251.
Не забудьте делать бекапы файлов.
Понимаю, извините за неудобства. Если скрипт удаляет часть текста из файлов .vmt, это может быть вызвано особенностями обработки символов в скрипте.спасибо, немного отошел от той идеи, а сейчас вновь вернулся, посмотрел тему и проверил скрипт. Работает, но он удаляет часть текста из файлов .vmt , к сожалению.Вообще, вот скрипт, который должен быстро справится с задачей замены содержимого файла (я же правильно понял задачу вам нужно заменить на нижний регистр внутри самого файла vmt?)
Автор кода: ComSpec.CMD/BATCH:@echo off SetLocal EnableExtensions >nul chcp 1251 for /r %%i in (*.vmt) do call :lower "%%i" >nul chcp 866 pause goto :eof :lower <"%~1">$ ( for /f "delims=" %%i in ('find/n /v ""') do @( set x=%%i& call set "x=%%x:\=$`$%%"& call set "x=%%x:|=${$%%"& call set "x=%%x:/=$@$%%" call set "x=%%x::=$#$%%"& call set "x=%%x:<=$'$%%"& call set "x=%%x:>=$;$%%" call set "x=%%x:?=$,$%%"& call set "x=%%x:"=$+$%%" for /f "delims=" %%j in ('cmd/v/c rem:^^^>"!x!"^^^& dir/b/l "!x!"^^^& del "!x!"') do @( set x=%%j& call set "x=%%x:$`$=\%%"& call set "x=%%x:${$=|%%"& call set "x=%%x:$@$=/%%" call set "x=%%x:$#$=:%%"& call set "x=%%x:$'$=<%%"& call set "x=%%x:$;$=>%%" call set "x=%%x:$,$=?%%"& call set "x=%%x:$+$="%%" cmd/v/c echo[!x:*]^^=! ) ) ) >nul move $ "%~1" exit /b
Предполагается, что кодировка файла: WIN-1251.
Не забудьте делать бекапы файлов.
$files = Get-ChildItem -Path "путь_к_папке" -Recurse -Filter "*.vmt"
foreach ($file in $files) {
$content = Get-Content $file.FullName
$newContent = $content.ToLower()
Set-Content -Path $file.FullName -Value $newContent
}
Понимаю, извините за путаницу. Вот исправленный .bat скрипт, который должен заменять содержимое файлов .vmt на нижний регистр:Необходим именно .bat скрипт
@echo off
setlocal enabledelayedexpansion
for /R %%G in (*.vmt) do (
set "filename=%%~nxG"
set "extension=!filename:~-4!"
REM Проверяем, является ли файл формата .vmt
if /I "!extension!"==".vmt" (
set "newname=%%~dpnG.tmp"
type nul > "!newname!"
REM Читаем содержимое файла и записываем его во временный файл в нижнем регистре
for /F "usebackq delims=" %%A in ("%%G") do (
set "line=%%A"
echo !line:lcase!
) >> "!newname!"
REM Заменяем исходный файл временным файлом
move /Y "!newname!" "%%G" > nul
)
)
echo Замена содержимого файлов .vmt на нижний регистр завершена.
не работает, в каждом файле удалилось содержимое и изменилось на line:lcaseПонимаю, извините за путаницу. Вот исправленный .bat скрипт, который должен заменять содержимое файлов .vmt на нижний регистр:
CMD/BATCH:@echo off setlocal enabledelayedexpansion for /R %%G in (*.vmt) do ( set "filename=%%~nxG" set "extension=!filename:~-4!" REM Проверяем, является ли файл формата .vmt if /I "!extension!"==".vmt" ( set "newname=%%~dpnG.tmp" type nul > "!newname!" REM Читаем содержимое файла и записываем его во временный файл в нижнем регистре for /F "usebackq delims=" %%A in ("%%G") do ( set "line=%%A" echo !line:lcase! ) >> "!newname!" REM Заменяем исходный файл временным файлом move /Y "!newname!" "%%G" > nul ) ) echo Замена содержимого файлов .vmt на нижний регистр завершена.
Пожалуйста, попробуйте этот исправленный .bat скрипт. Он должен правильно заменять содержимое файлов .vmt на нижний регистр.
Если у вас возникнут еще вопросы или проблемы, пожалуйста, дайте мне знать!
И скажите важен именно .bat или можно например в виде файла .vbs реализовать (будет по-шустрее и безопаснее).Работает, но он удаляет часть текста из файлов .vmt , к сожалению.
Вот так выглядит файл формата .vmtЯ отключил ИИ в этой теме, т.к. он похоже здесь зашел в тупик.
Прикрепите пример файла vmt, на котором у вас:
И скажите важен именно .bat или можно например в виде файла .vbs реализовать (будет по-шустрее и безопаснее).
Да, проверил ваши файлы, и все сработало, и далее переместил свои файлы, и снова та же проблема. Давайте я прикреплю свои файлы, которые по этому же принципу и будут далее использоваться, чтобы вы на них конкретно посмотрели, пожалуйста.У меня мой скрипт никаких ошибок не отображает, и выдаёт результат, как ожидается.
Может, кодировка у вас специфическая, но обычно у скриптов source моделей используется обычная ansi.
Как вариант, возможно в пути к файлу, что-то необычное. Но, вот сейчас попробовал пробелы, скобки, русские буквы, все равно нормально работает.
Попробуйте, запустить из прикрепленного файла
я понял, скрипт не понимает пробелы в начале строк.У меня мой скрипт никаких ошибок не отображает, и выдаёт результат, как ожидается.
Может, кодировка у вас специфическая, но обычно у скриптов source моделей используется обычная ansi.
Как вариант, возможно в пути к файлу, что-то необычное. Но, вот сейчас попробовал пробелы, скобки, русские буквы, все равно нормально работает.
Попробуйте, запустить из прикрепленного файла
' Case replacer script by Dragokas
' Changes contents of all *.vmt files into lower case
' version 1.0
Option Explicit
'On Error Resume Next
' Указать список расширений для обработки (через знак ;)
Dim Exts: Exts = "vmt"
Dim aExts: aExts = Split(Exts, ";")
Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim cur: cur = oFSO.GetParentFolderName(WScript.ScriptFullName)
' Папка, в которой будет производится поиск (по-умолчанию - в папке со скриптом)
Dim Folder: Folder = cur
Dim oRoot: Set oRoot = oFSO.GetFolder(Folder)
Dim oDict: Set oDict = CreateObject("Scripting.Dictionary")
' Перезапуск из консоли
if strcomp(oFSO.GetBaseName(Wscript.FullName), "cscript", 1) <> 0 then
CreateObject("WScript.Shell").Run """c:\windows\system32\cscript.exe""" & " //nologo " & """" & WScript.ScriptFullName & """", 1, false
WScript.Quit
end if
Dim oLog, LogFile
LogFile = oFSO.BuildPath(cur, "CaseChanger.log")
set oLog = oFSO.OpenTextFile(LogFile, 2, true)
AddToLog "Замена файлов..."
ReplaceTextInAllFiles oRoot
AddToLog ""
AddToLog "Завершено." & vbcrlf & "Лог сохранен в файл: " & LogFile
oLog.Close
WScript.StdIn.ReadLine()
WScript.Sleep 1000
Sub ReplaceTextInAllFiles(oFolder)
On Error Resume Next
Dim oFile, oSubfolder, oTS, Content, OldContent
If oFolder.Attributes AND &H600 Then Exit Sub 'проходим мимо симлинков
For Each oFile In oFolder.Files
' если не этот скрипт и не файл-лог и совпадает с одним из списка заданных расширений
if StrComp(oFile.Path, WScript.ScriptFullName, 1) <> 0 AND StrComp(oFile.Path, LogFile, 1) <> 0 and IsValidExtension(oFSO.GetExtensionName(oFile.Path)) then
set oTS = oFile.OpenAsTextStream(1)
if not oTS.AtEndOfStream then Content = oTS.ReadAll() ' читаем файл целиком
oTS.Close
set oTS = Nothing
OldContent = Content
Content = LCase(Content)
if Content <> OldContent then ' если были изменения
set oTS = oFile.OpenAsTextStream(2)
oTS.Write Content
oTS.Close
AddToLog "{+} " & oFile.Path
Else
AddToLog "{-} " & oFile.Path
end if
end if
Next
For Each oSubfolder In oFolder.Subfolders
ReplaceTextInAllFiles oSubfolder 'рекурсия
Next
End Sub
Sub AddToLog(sLine)
On Error Resume Next
WScript.Echo sLine
oLog.WriteLine sLine
End Sub
Function IsValidExtension(Extension) ' проверка на совпадение найденного расширения со списком заданных
On Error Resume Next
Dim myExt
IsValidExtension = false
For each myExt in aExts
if StrComp(Extension, myExt, 1) = 0 then IsValidExtension = true: Exit For
Next
End Function
а если с предоставлением этой информации, может получится исправить .bat скрипт ? ;-)я понял, скрипт не понимает пробелы в начале строк. Посмотреть вложение 106675 сейчас в ваших файлах добавил пробелы, и попробовал выполнить скрипт, и та же ошибка, что в моих файлах
Да, проверил его работу и он так же работает.Все хорошо. А можно, пожалуйста, чтобы без лога и чтобы происходило его удаление CaseChanger.vbs, после выполнения его работы.Зачем вам bat-файл? Вам ведь просто работу выполнить. Повторюсь, его использование ничем не отличается от bat. Никакие доп. программы не нужны.
чуть помог форуму, по кнопке переводаДа, проверил его работу и он так же работает.Все хорошо. А можно, пожалуйста, чтобы без лога и чтобы происходило его удаление CaseChanger.vbs, после выполнения его работы.
МожноДа, проверил его работу и он так же работает.Все хорошо. А можно, пожалуйста, чтобы без лога и чтобы происходило его удаление CaseChanger.vbs, после выполнения его работы.
' Case replacer script by Dragokas
' Changes contents of all *.vmt files into lower case
' version 1.1 (self-delete)
Option Explicit
'On Error Resume Next
Dim UseLogging: UseLogging = false
' Указать список расширений для обработки (через знак ;)
Dim Exts: Exts = "vmt"
Dim aExts: aExts = Split(Exts, ";")
Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim cur: cur = oFSO.GetParentFolderName(WScript.ScriptFullName)
' Папка, в которой будет производится поиск (по-умолчанию - в папке со скриптом)
Dim Folder: Folder = cur
Dim oRoot: Set oRoot = oFSO.GetFolder(Folder)
Dim oDict: Set oDict = CreateObject("Scripting.Dictionary")
' Перезапуск из консоли
if strcomp(oFSO.GetBaseName(Wscript.FullName), "cscript", 1) <> 0 then
CreateObject("WScript.Shell").Run """c:\windows\system32\cscript.exe""" & " //nologo " & """" & WScript.ScriptFullName & """", 1, false
WScript.Quit
end if
Dim oLog, LogFile
if UseLogging then
LogFile = oFSO.BuildPath(cur, "CaseChanger.log")
set oLog = oFSO.OpenTextFile(LogFile, 2, true)
end if
AddToLog "Замена файлов..."
ReplaceTextInAllFiles oRoot
AddToLog ""
if UseLogging then
AddToLog "Завершено." & vbcrlf & "Лог сохранен в файл: " & LogFile
oLog.Close
end if
oFSO.DeleteFile WScript.ScriptFullName, true
WScript.StdIn.ReadLine()
Sub ReplaceTextInAllFiles(oFolder)
On Error Resume Next
Dim oFile, oSubfolder, oTS, Content, OldContent
If oFolder.Attributes AND &H600 Then Exit Sub 'проходим мимо симлинков
For Each oFile In oFolder.Files
' если не этот скрипт и не файл-лог и совпадает с одним из списка заданных расширений
if StrComp(oFile.Path, WScript.ScriptFullName, 1) <> 0 AND StrComp(oFile.Path, LogFile, 1) <> 0 and IsValidExtension(oFSO.GetExtensionName(oFile.Path)) then
set oTS = oFile.OpenAsTextStream(1)
if not oTS.AtEndOfStream then Content = oTS.ReadAll() ' читаем файл целиком
oTS.Close
set oTS = Nothing
OldContent = Content
Content = LCase(Content)
if Content <> OldContent then ' если были изменения
set oTS = oFile.OpenAsTextStream(2)
oTS.Write Content
oTS.Close
AddToLog "{+} " & oFile.Path
Else
AddToLog "{-} " & oFile.Path
end if
end if
Next
For Each oSubfolder In oFolder.Subfolders
ReplaceTextInAllFiles oSubfolder 'рекурсия
Next
End Sub
Sub AddToLog(sLine)
On Error Resume Next
WScript.Echo sLine
if UseLogging then oLog.WriteLine sLine
End Sub
Function IsValidExtension(Extension) ' проверка на совпадение найденного расширения со списком заданных
On Error Resume Next
Dim myExt
IsValidExtension = false
For each myExt in aExts
if StrComp(Extension, myExt, 1) = 0 then IsValidExtension = true: Exit For
Next
End Function
WScript.StdIn.ReadLine()
спасибо большоеМожно
VB.NET / VBA:' Case replacer script by Dragokas ' Changes contents of all *.vmt files into lower case ' version 1.1 (self-delete) Option Explicit 'On Error Resume Next Dim UseLogging: UseLogging = false ' Указать список расширений для обработки (через знак ;) Dim Exts: Exts = "vmt" Dim aExts: aExts = Split(Exts, ";") Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject") Dim cur: cur = oFSO.GetParentFolderName(WScript.ScriptFullName) ' Папка, в которой будет производится поиск (по-умолчанию - в папке со скриптом) Dim Folder: Folder = cur Dim oRoot: Set oRoot = oFSO.GetFolder(Folder) Dim oDict: Set oDict = CreateObject("Scripting.Dictionary") ' Перезапуск из консоли if strcomp(oFSO.GetBaseName(Wscript.FullName), "cscript", 1) <> 0 then CreateObject("WScript.Shell").Run """c:\windows\system32\cscript.exe""" & " //nologo " & """" & WScript.ScriptFullName & """", 1, false WScript.Quit end if Dim oLog, LogFile if UseLogging then LogFile = oFSO.BuildPath(cur, "CaseChanger.log") set oLog = oFSO.OpenTextFile(LogFile, 2, true) end if AddToLog "Замена файлов..." ReplaceTextInAllFiles oRoot AddToLog "" if UseLogging then AddToLog "Завершено." & vbcrlf & "Лог сохранен в файл: " & LogFile oLog.Close end if oFSO.DeleteFile WScript.ScriptFullName, true WScript.StdIn.ReadLine() Sub ReplaceTextInAllFiles(oFolder) On Error Resume Next Dim oFile, oSubfolder, oTS, Content, OldContent If oFolder.Attributes AND &H600 Then Exit Sub 'проходим мимо симлинков For Each oFile In oFolder.Files ' если не этот скрипт и не файл-лог и совпадает с одним из списка заданных расширений if StrComp(oFile.Path, WScript.ScriptFullName, 1) <> 0 AND StrComp(oFile.Path, LogFile, 1) <> 0 and IsValidExtension(oFSO.GetExtensionName(oFile.Path)) then set oTS = oFile.OpenAsTextStream(1) if not oTS.AtEndOfStream then Content = oTS.ReadAll() ' читаем файл целиком oTS.Close set oTS = Nothing OldContent = Content Content = LCase(Content) if Content <> OldContent then ' если были изменения set oTS = oFile.OpenAsTextStream(2) oTS.Write Content oTS.Close AddToLog "{+} " & oFile.Path Else AddToLog "{-} " & oFile.Path end if end if Next For Each oSubfolder In oFolder.Subfolders ReplaceTextInAllFiles oSubfolder 'рекурсия Next End Sub Sub AddToLog(sLine) On Error Resume Next WScript.Echo sLine if UseLogging then oLog.WriteLine sLine End Sub Function IsValidExtension(Extension) ' проверка на совпадение найденного расширения со списком заданных On Error Resume Next Dim myExt IsValidExtension = false For each myExt in aExts if StrComp(Extension, myExt, 1) = 0 then IsValidExtension = true: Exit For Next End Function
P.S. При необходимости, удалите строчку:
если не желаете нажимать ENTER для завершения скрипта.Код:WScript.StdIn.ReadLine()