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

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

xerius2 17-01-2018 11:40 2791992

Помогите девушке сделать bat файлик
 
Есть каталог с файлами и txt файл с именами этих файлов.
Мне нужно, чтобы было так:
flashnul.exe 1 -L 0001.bin -r=0 -V=2
flashnul.exe 1 -L 0002.bin -r=4096 -V=2
flashnul.exe 1 -L 0003.bin -r=8192 -V=2
...
Это файлы о которых я писала выше. Их много.
0001.bin
0002.bin
0003.bin

А вот значения
-r=0
-r=4096
-r=8192
...
эти значения прибавляются на 4096 в каждой следующей строке и должны соответствовать имени файла.
И еще нужно чтобы между командами была задержка на выполнение следующей:

flashnul.exe 1 -L 0001.bin -r=0 -V=2
задержка 3 секунды
flashnul.exe 1 -L 0002.bin -r=4096 -V=2
задержка 3 секунды
flashnul.exe 1 -L 0003.bin -r=8192 -V=2
и т.д.
Ребят, может поможет кто? Я сама пыталась, но для блондинки это тяжеловато! Спасибо.

Iska 17-01-2018 11:56 2792001

На что мы ориентируемся в количестве? На число файлов вида 0001.bin, 0002.bin, … NNNN.bin?

xerius2 17-01-2018 11:58 2792003

Привет. Спасибо, что откликнулись, но я не поняла Ваш вопрос.

Iska 17-01-2018 12:25 2792009

Вы пишете:
Цитата:

Цитата xerius2
Мне нужно, чтобы было так:
flashnul.exe 1 -L 0001.bin -r=0 -V=2
flashnul.exe 1 -L 0002.bin -r=4096 -V=2
flashnul.exe 1 -L 0003.bin -r=8192 -V=2
...
Это файлы о которых я писала выше. Их много. »

То есть, мы составляем:
Код:

flashnul.exe 1 -L 0001.bin -r=0 -V=2
flashnul.exe 1 -L 0002.bin -r=4096 -V=2
flashnul.exe 1 -L 0003.bin -r=8192 -V=2
flashnul.exe 1 -L 0004.bin -r=12288 -V=2
flashnul.exe 1 -L 0005.bin -r=16384 -V=2
flashnul.exe 1 -L 0006.bin -r=20480 -V=2
flashnul.exe 1 -L 0007.bin -r=24576 -V=2

и т.д.

Так вот, до каких пор мы должны добавлять строки, наращивая выделенное?

xerius2 17-01-2018 12:41 2792011

Поняла. Файлов всего 4224. Мне нужно все их использовать.

Iska 17-01-2018 13:00 2792014

На WSH (не проверялось):
Скрытый текст
Код:

Option Explicit

Dim objFSO
Dim objWshShell

Dim i
Dim strFileName


Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

i = 0

Do
        strFileName = Right("0000" & CStr(i + 1), 4) & ".bin"
       
        If objFSO.FileExists(strFileName) Then
                objWshShell.Run "flashnul.exe 1 -L " & strFileName & " -r=" & CStr(i * 4096) & " -V=2", 1, True
                WScript.Sleep 3 * 1000
                i = i + 1
        Else
                Exit Do
        End If
Loop

Set objWshShell = Nothing
Set objFSO      = Nothing

WScript.Quit 0


xerius2 17-01-2018 13:10 2792018

Спасибо большое! Буду проверять!

xerius2 17-01-2018 14:31 2792035

Еще раз ОГРОМНОЕ СПАСИБО! Все работает! :yahoo:

megaloman 17-01-2018 16:31 2792061

xerius2,
Если девушка ориентируется только на имена файлов, которые имеют вид от 0001.bin, 0002.bin .... 4224.bin,то вот батничек
Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

FOR /L %%i IN (1,1,4224) DO (
        Set /A Name=%%i+1000000
        Set /A R=%%i*4096-4096
        If Exist !Name:~-4!.bin (
                flashnul.exe 1 -L !Name:~-4!.bin -r=!R! -V=2
                >nul choice /C Y /N /T 3 /D Y
        )
)

Но если "Есть ... txt файл с именами этих файлов, тогда"
Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set "Text=TextFile.txt"
FOR /F "usebackq delims=" %%f IN ("%Text%") DO (
        Set /A R=1%%~nf-10000
        Set /A R=!R!*4096-4096
        If Exist %%f (
                flashnul.exe 1 -L %%f -r=!R! -V=2
                >nul choice /C Y /N /T 3 /D Y
        )
)

Хотя, в общем-то непонятно, зачем в поставленной задаче нужен
Цитата:

Цитата xerius2
txt файл с именами этих файлов. »


Iska 17-01-2018 20:41 2792121

Цитата:

Цитата megaloman
Но если "Есть ... txt файл с именами этих файлов, тогда" »

Точно, было же:
Цитата:

Цитата xerius2
и txt файл с именами этих файлов »

Что-то я «прощёлкал» сие :(.

megaloman 18-01-2018 11:43 2792253

Iska, А я не прочувствовал, что девушке
Цитата:

Цитата xerius2
нужно чтобы между командами была задержка на выполнение следующей: »

Исправил. Привлёк choice, наверное при этом надо иметь Windows не старше Win 7
И в вопросе не понятно, что надо: пауза между запусками программ, или пауза перед запуском следующей программы после того, как предыдущая программа отработала.
ИМХО, логично, если ждать окончания запущенной программы, не делать задержки.
Цитата:

Цитата xerius2
Я сама пыталась, но для блондинки это тяжеловато! »

ИМХО, заметил, что брюнетки чаще красятся в блондинок, чем наоборот. А блондинки (и натуральные и крашенные) любят поддерживать блондинистую мифологию, чтобы джентльмены с низкого старта бежали на помощь :)

Iska 18-01-2018 12:06 2792257

Цитата:

Цитата megaloman
надо иметь Windows не старше Win 7 »

Э… может быть — «не младше»?

Цитата:

Цитата megaloman
И в вопросе не понятно, что надо: пауза между запусками программ, или пауза перед запуском следующей программы после того, как предыдущая программа отработала. »

Скрытый текст
Цитата:

Цитата xerius2
flashnul.exe 1 -L 0001.bin -r=0 -V=2
задержка 3 секунды
flashnul.exe 1 -L 0002.bin -r=4096 -V=2
задержка 3 секунды
flashnul.exe 1 -L 0003.bin -r=8192 -V=2
и т.д. »


megaloman 18-01-2018 12:20 2792261

Iska, Win 95 старше Win 7 так как появилась раньше. Корректнее, наверное, не старее. А насчёт паузы - весь вопрос в назначении программы, чем обусловлено требование на её присутствие.


Время: 16:28.

Время: 16:28.
© OSzone.net 2001-