Войти

Показать полную графическую версию : Помогите девушке сделать bat файлик


xerius2
17-01-2018, 11:40
Есть каталог с файлами и 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
На что мы ориентируемся в количестве? На число файлов вида 0001.bin, 0002.bin, … NNNN.bin?

xerius2
17-01-2018, 11:58
Привет. Спасибо, что откликнулись, но я не поняла Ваш вопрос.

Iska
17-01-2018, 12:25
Вы пишете:
Мне нужно, чтобы было так:
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
Поняла. Файлов всего 4224. Мне нужно все их использовать.

Iska
17-01-2018, 13:00
На 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
Спасибо большое! Буду проверять!

xerius2
17-01-2018, 14:31
Еще раз ОГРОМНОЕ СПАСИБО! Все работает! :yahoo:

megaloman
17-01-2018, 16:31
xerius2, @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
)
)
@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
)
)
Хотя, в общем-то непонятно, зачем в поставленной задаче нужен txt файл с именами этих файлов. »

Iska
17-01-2018, 20:41
Но если "Есть ... txt файл с именами этих файлов, тогда" »
Точно, было же:
и txt файл с именами этих файлов »
Что-то я «прощёлкал» сие :(.

megaloman
18-01-2018, 11:43
Iska, А я не прочувствовал, что девушке нужно чтобы между командами была задержка на выполнение следующей: » Исправил. Привлёк choice, наверное при этом надо иметь Windows не старше Win 7
И в вопросе не понятно, что надо: пауза между запусками программ, или пауза перед запуском следующей программы после того, как предыдущая программа отработала.
ИМХО, логично, если ждать окончания запущенной программы, не делать задержки.
Я сама пыталась, но для блондинки это тяжеловато! » ИМХО, заметил, что брюнетки чаще красятся в блондинок, чем наоборот. А блондинки (и натуральные и крашенные) любят поддерживать блондинистую мифологию, чтобы джентльмены с низкого старта бежали на помощь :)

Iska
18-01-2018, 12:06
надо иметь Windows не старше Win 7 »
Э… может быть — «не младше»?

И в вопросе не понятно, что надо: пауза между запусками программ, или пауза перед запуском следующей программы после того, как предыдущая программа отработала. »
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
Iska, Win 95 старше Win 7 так как появилась раньше. Корректнее, наверное, не старее. А насчёт паузы - весь вопрос в назначении программы, чем обусловлено требование на её присутствие.




© OSzone.net 2001-2012