Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запись случайного числа в файл (http://forum.oszone.net/showthread.php?t=311063)

null999 01-02-2016 20:43 2601521

Запись случайного числа в файл
 
Здраствуйте.
Помогите со следующей задачей
есть файл *.txt в нем есть строка, где помимо всего остального есть "newacc.1" нужно что бы скрипт вставлял вместо этого числа случайное целое число, допустим от 1 до 250

Foreigner 01-02-2016 22:05 2601543

Powershell:
Код:

$a = get-random -max 250
(gc file.txt) -replace 'newacc\.\d+',"newacc.$a" | sc file.txt


null999 01-02-2016 22:25 2601550

Цитата:

Цитата Foreigner
$a = get-random -max 250
(gc file.txt) -replace 'newacc\.\d+',"newacc.$a" | sc file.txt »

сори, но power shell не подошел, на сколько помню то не на всех машинах с первого раза запуститься (что то тм с политикой безопасности надо выставлять)

Iska 01-02-2016 23:28 2601563

Тогда возьмите WSH:
Скрытый текст
Код:

Option Explicit

Const ForWriting = 2

Dim strSourceFile
Dim strContent


strSourceFile = "C:\Мои проекты\33\0001.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(strSourceFile) Then
                With .OpenTextFile(strSourceFile)
                        strContent = .ReadAll()
                        .Close
                End With
               
                With WScript.CreateObject("VBScript.RegExp")
                        .Global    = True
                        .IgnoreCase = True
                        .Pattern    = "(newacc\.)\d+"
                       
                        If .Test(strContent) Then
                                Randomize Timer
                                strContent = .Replace(strContent, "$1" & CStr(Int(250 * Rnd() + 1)))
                        Else
                                WScript.Echo "Can't find pattern [" & .Pattern & "] in file content."
                                WScript.Quit 2
                        End If
                End With
               
                With .OpenTextFile(strSourceFile, ForWriting)
                        .Write strContent
                        .Close
                End With
        Else
                WScript.Echo "Can't find source file [" & strSourceFile & "]."
                WScript.Quit 1
        End If
End With

WScript.Quit 0



Цитата:

Цитата null999
что то тм с политикой безопасности надо выставлять »

Нет. Просто однократно разрешить исполнение локальных неподписанных скриптов. Может быть, даже можно и групповой политикой (не интересовался).

null999 02-02-2016 00:27 2601577

Iska, спасибо, подошел ваш вариант


Время: 14:33.

Время: 14:33.
© OSzone.net 2001-