Петля Powershell - PullRequest
       5

Петля Powershell

0 голосов
/ 14 декабря 2011

Я хотел бы зациклить команды с powershell для создания локальной папки и удалить ее через 5 минут. Затем подождите 1 минуту и ​​снова создайте общий ресурс. Затем через 5 минут удалите его и еще через одну минуту создайте его снова и т. Д. И т. Д.

Получил эти два:

$FolderPath = "D:\proxy"
$ShareName = "proxy"
$Type = 0

$objWMI = [wmiClass] 'Win32_share'
$objWMI.create($FolderPath, $ShareName, $Type)

Start-Sleep -s 60
Get-WmiObject -Class Win32_Share -Filter "Name='proxy'" | Remove-WmiObject

Start-Sleep -s 60
$objWMI = [wmiClass] 'Win32_share'
$objWMI.create($FolderPath, $ShareName, $Type)

Но это не цикл. Останавливается после окончания файла.

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

Вам не нужен последний шаг создания, в цикле он будет создан на первом шаге цикла.Чтобы отменить операцию, нажмите клавиши CTRL + C.

$FolderPath = "D:\proxy"
$ShareName = "proxy"
$Type = 0

while($true){
    #create the share
    $objWMI = [wmiClass] 'Win32_share'
    $objWMI.create($FolderPath, $ShareName, $Type)

    # remove it after 5 minutes
    Start-Sleep -s 300
    Get-WmiObject -Class Win32_Share -Filter "Name='proxy'" | Remove-WmiObject

    # wait one minute, share will be created in next loop iteration
    Start-Sleep -s 60
}
0 голосов
/ 14 декабря 2011

Что-то вроде:

$done = $false
while(!$done)
{
    $FolderPath = "D:\proxy"
$ShareName = "proxy"
$Type = 0

$objWMI = [wmiClass] 'Win32_share'
$objWMI.create($FolderPath, $ShareName, $Type)

Start-Sleep -s 60
Get-WmiObject -Class Win32_Share -Filter "Name='proxy'" | Remove-WmiObject

Start-Sleep -s 60
$objWMI = [wmiClass] 'Win32_share'
$objWMI.create($FolderPath, $ShareName, $Type)
}
0 голосов
/ 14 декабря 2011

Просто вставьте свой код в do {} while(true) блок (или измените условие на то, что вам нужно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...