С Новым годом! Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.01.2022
Сообщений: 2
1

Нужно переконвертировать VBS script в Powershell script

03.02.2022, 14:23. Показов 1243. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем. Возникла необходимость переписать VBS скрипт для копирования логов в Powershel без изменения логики. Знаний в Powershel совсем не хватает. Буду очень благодарен за помощь.
VBS скрипт:
Код
'on error resume next

sSearchDir     = "С:\Logs\"
sDestinDir     = "\\external.com\logs\"
bDebug         = true

set oFS    = CreateObject("Scripting.FileSystemObject")
Set oNet   = CreateObject("WScript.Network")
Set oShell = CreateObject("WScript.Shell")

dYesterday = DateAdd("d", -1, now)
sYear      = Right(Year(dYesterday), 2)
sMonth     = Month(dYesterday)
sDay       = Day(dYesterday)

If Len(sMonth) = 1 Then sMonth = "0" & sMonth
If Len(sDay)   = 1 Then sDay   = "0" & sDay

sYesterday = sYear & sMonth & sDay
If bDebug Then wscript.echo "now:       " & now
If bDebug Then wscript.echo "yesterday: " & dYesterday
If bDebug Then wscript.echo "yesterday2:" & sYesterday

'WScript.Echo (sSearchDir & "u_ex" & sYesterday & ".log")

If oFS.FileExists(sSearchDir & "u_ex" & sYesterday & ".log") Then
  If bDebug Then wscript.echo "command:   " & """" & oShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") & "\7-Zip\7z.exe"" a " & sSearchDir & "u_ex" & sYesterday & ".log" & " " & sSearchDir & sYesterday & ".zip"
  iRet = oShell.Run("""" & oShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") & "\7-Zip\7z.exe"" a " & sSearchDir & "ex" & sYesterday & ".zip" & " " & sSearchDir & "u_ex" & sYesterday & ".log")

  WScript.sleep 60000

  oFS.CopyFile sSearchDir & "ex" & sYesterday & ".zip", sDestinDir,TRUE



  If iRet = 0 Then oFS.DeleteFile sSearchDir & "u_ex" & sYesterday & ".log", True


End If
WScript.Quit(iRet)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2022, 14:23
Ответы с готовыми решениями:

VBS script переписать на jscript
Помогите переделать маленький скриптик на jscript : Option Explicit Dim fso, Wsh, progdata,...

Не работает сокращение <% %> и не скрывается код,расположенный между <script></script>
Помогите,пожалуйста!У меня не работает сокращение &lt;% %&gt; и не скрывается код,расположенный между...

Баг переноса скрипта: The script don't inherit a native class that can manage a script
При переносе скрипта на модель происходит ошибка 'The script don't inherit a native class that can...

Поиск архивных данных по дате vbs script
Всем привет. Помогите со скриптом. Есть архив (в TAG Logging) в котором записываются...

Поиск архивных данных по дате vbs script
Всем привет. Помогите со скриптом. Есть архив (в TAG Logging) в котором записываются...

5
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
03.02.2022, 14:34 2
Цитата Сообщение от gibastus Посмотреть сообщение
Знаний в Powershel совсем не хватает
у кого-то наоборот в PS - хватает, а в VBS - нет. Вот если бы расписали подробно что и как делает скрипт, с комментариями по строкам, зачем он нужен (какую цель выполняет), бывает что на другом языке приходится (или удобнее) практически полностью переделывать код или подходить с другой стороны.
1
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,403
03.02.2022, 15:54 3
alpap, vbs коряво написан. В общем:
1. Проверяет через константу, что надо выводить инфу в консоль и при подтверждении выводит даты в формате:
Код
now:       03.02.2022 15:44:52
yesterday: 02.02.2022 15:44:52
yesterday2:220202
2. Если есть С:\Logs\u_ex220202.log:
2a. Выводит при той же проверке команду "%ProgramFiles(x86)%\7-Zip\7z.exe" a С:\Logs\u_ex220202.log С:\Logs\220202.zip и выполняет её.
2b. Копирует С:\Logs\ex220202.zip в \\external.com\logs\
2с. Если паковка прошла без ошибок, то удалить С:\Logs\u_ex220202.log
3. Код возврата 7z отправляется в код выхода интерпретатора.

Будешь делать? Мне лень.
1
㊙️
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
03.02.2022, 17:57 4
Лучший ответ Сообщение было отмечено gibastus как решение

Решение

На скорую руку
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
param(
    $sSearchDir = "D:\logs\",
    $sDestinDir = "D:\out\",
    $bDebug     = $true
)cls
 
$yesterday1 = (Date).AddDays(-1)
$yesterday2 = $yesterday1.ToString("yyMMdd")
if($bDebug){
    Write-Host "now: $(Date)`nyesterday: $yesterday1`nyesterday2: $yesterday2`n"
}
$logName = "u_ex$yesterday"
if(Test-Path "$sSearchDir$logName.log"){
    if($bDebug){
        Write-Host "$sSearchDir$logName.log -> $sDestinDir$logName.zip"
    }
    try{
        Compress-Archive -l "$sSearchDir$logName.log" "$sDestinDir$logName.zip"
        Remove-Item "$sSearchDir$logName.log"
    }
    catch{throw $_}
}
0
0 / 0 / 0
Регистрация: 11.01.2022
Сообщений: 2
03.02.2022, 18:39  [ТС] 5
Спасибо всем за помощь. Дальше сам
0
6335 / 2762 / 1071
Регистрация: 06.06.2017
Сообщений: 9,403
03.02.2022, 18:54 6
Цитата Сообщение от Fors1k Посмотреть сообщение
PowerShell
15
        Write-Host "$sSearchDir$logName.log -> $sDestinDir$logName.zip"
Это не заявлялось. А вот 2b не хватает.
0
03.02.2022, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2022, 18:54
Помогаю со студенческими работами здесь

Организуем бегущую ленту в статус-строке. В контейнере <script></script> разместим такой код:
str = &quot;Here may be your own text&quot;; /*Задаем текст бегущей ленты */ function floatingText() { str...

Вырезать из текста всё что между <script и <script>
вот такой текст лежит в переменной php = &lt;html&gt; &lt;head&gt; &lt;script type=&quot;text/javascript&quot;...

Вызов удаленного файла через <script src=....></script>
на странице имеется код: &lt;div id='Output'&gt; &lt;script src='http://www.xxx.ru/xxx.asp'&gt;&lt;/script&gt;...

cant add script component 'Connection' because the script class cannot be found
Пытался подключить бд к Unity 2d, но столкнулся с проблемой в скрипте. Выдаёт ошибку ,когда пытаюсь...

Вызов удаленного файла через <script src=....></script>
на странице имеется код: &lt;div id='Output'&gt; &lt;script src='http://www.xxx.ru/xxx.asp'&gt;&lt;/script&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru