Показать полную графическую версию : [решено] Нужна помощ в переписании команд из cmd в command.com, или на чтонибудь еще
TruLander
18-04-2009, 15:33
нужна помощ в переписании скрипта
@Echo Off
If Exist c:\windows\dkdir.txt (
Call :_Parsing c:\windows\dkdir.txt
GoTo :EOF
)
If Exist C:\dkdir.txt (
Call :_Parsing C:\dkdir.txt & GoTo :EOF
GoTo :EOF
)
Echo "бла-бла переустановите программу))"
Pause
GoTo :EOF
:_Parsing
For /F "Tokens=*" %%A In (%1) Do 7za.exe e 12.zip -o"%%A"
нужно чтоб этот код был переписан для работы в win98 и выше до vistax64))
можно сделать независимый exe файл для выполнения опирации прописаной в этом коде
главное в конце должна добавится конечная папка для извлечения архива - скрипт исполняемый архиватором 7za.exe e 12.zip -oконечный каталог "пример 7za.exe e 12.zip -oc:\123\"
Maza Faka
19-04-2009, 12:17
нужно чтоб этот код был переписан для работы в win98 »
Нет возможности проверить в Win98, в WinXP работает:
Dim FSO, sFile, sFile1, sFile2, sPath, hFile, WshShell
sFile1 = "c:\windows\dkdir.txt"
sFile2 = "c:\dkdir.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(sFile1) Then
sFile = sFile1
ElseIf FSO.FileExists(sFile2) Then
sFile = sFile2
Else
MsgBox "Переустановите программу", 16, "Ошибка"
WScript.Quit 1
End If
Set hFile = FSO.OpenTextFile(sFile, 1)
sPath = hFile.ReadAll()
'MsgBox sPath
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "7z.exe e 12.zip -o" & sPath, 0, True
на VBS - вариант!.. :yes: на батниках тоже можно (если в dkdir.txt всего одна строчка):
вариант для локализованных DOS/WINDOWS:
@Echo Off
If Exist C:\dkdir.txt Set $PATH=C:\dkdir.txt
If Exist C:\WINDOWS\dkdir.txt Set $PATH=C:\WINDOWS\dkdir.txt
If Not "%$PATH%"=="" GoTo _Parsing
Echo "бла-бла переустановите программу))"
Pause
Exit
:_Parsing
Echo.>>%$PATH%
Echo @Echo Off>%windir%\TEMP.BAT
Type %$PATH%|TIME|Find "Введите">>%windir%\TEMP.BAT
>%windir%\Введите.BAT Echo @Echo Off
>>%windir%\Введите.BAT Echo Set $DIR=%%3
>>%windir%\Введите.BAT Echo If Not "%%$DIR%%"=="" 7za.exe e 12.zip -o%%$DIR%%
Call %windir%\TEMP.BAT
DEL %windir%\Введите.BAT
DEL %windir%\TEMP.BAT
З.Ы. само собой, при желании можно добавить поддержку английской Windows ;)
TruLander
19-04-2009, 14:33
Maza Faka, спасибо за помощ)) по всей видимости это твой скрипт который ты написал мне в другом форуме, а в этом
скрипте Dim FSO, sFile, sFile1, sFile2, sPath, hFile, WshShell
sFile1 = "c:\windows\dkdir.txt"
sFile2 = "c:\dkdir.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(sFile1) Then
sFile = sFile1
ElseIf FSO.FileExists(sFile2) Then
sFile = sFile2
Else
MsgBox "Переустановите программу", 16, "Ошибка"
WScript.Quit 1
End If
Set hFile = FSO.OpenTextFile(sFile, 1)
sPath = hFile.ReadAll()
'MsgBox sPath
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "7z.exe e 12.zip -o" & sPath, 0, True
на winvistax64 выдает
Dim FSO, sFile, sFile1, sFile2, sPath, hFile, WshShell
dim не является внутренней или внешней командой, исполняемой программой или пакетным файлом
sFile1 = "c:\windows\dkdir.txt"
sFile1 не является внутренней или внешней командой, исполняемой программой или пакетным файлом
про sFile2 тоже самое
Set FSO = CreateObject("Scripting.FileSystemObject")
непредвиденное появление then
а, в win98
wscript.quit 1
имя команды указано неправильно
set hfile = fso.opentextfile(sfile, 1)
spath = hfile.readall()
имя команды указано не правильно
set wshshell = wscript.createobject("wscript.shell")
wshshell.run "7z.exe" e 12.zip -o" & spath, 0, true
имя команды указано неправильно
TruLander
19-04-2009, 15:02
amel27, спасиб твой вариант работает хорошо.
(если в dkdir.txt всего одна строчка): - в том то и дело что не одна строчка, а 2строчки пример: 1строка [c:\123\], 2строка c:\123, и батник считывает 1 строчку с кавычками и не может из-за этого создать директорию, если для теста убрать 1 строку то все проходит нормально и распаковывает.
при желании можно добавить поддержку английской Windows - это в смысле будет отображатся надпись
bla bla, reinstall the program? я не против)), хотелось бы чтоб если так то в отличном от русского языка отображалась надпись английского содержания если это возможно ну или тогда просто сделать все на английском.
Вот у меня вопрос? "Введите">>%windir%\TEMP.BAT что оно обозначает? я так понимаю это в случае если папка temp не будет найдена то задастся вопрос?
проверял все работает и на вистеx64 и в 98)))
в том то и дело что не одна строчка, а 2строчки пример: 1строка [c:\123\], 2строка c:\123»тогда попробуйте так (с поддержкой английской Windows):
@Echo Off
If Exist C:\dkdir.txt Set $PATH=C:\dkdir.txt
If Exist C:\WINDOWS\dkdir.txt Set $PATH=C:\WINDOWS\dkdir.txt
If Not "%$PATH%"=="" GoTo _Parsing
Echo "бла-бла переустановите программу))"
Pause
Exit
:_Parsing
Type %$PATH%|Find /V "["|TIME|Find "\">%SystemDrive%\TEMP.BAT
>%windir%\Введите.BAT Echo If Not Exist %%3\nul.ext MD %%3
>>%windir%\Введите.BAT Echo 7za.exe e 12.zip -o%%3\
>%windir%\Enter.BAT Echo If Not Exist %%4\nul.ext MD %%4
>>%windir%\Enter.BAT Echo 7za.exe e 12.zip -o%%4\
Call %SystemDrive%\TEMP.BAT
DEL %SystemDrive%\TEMP.BAT
DEL %windir%\Введите.BAT
DEL %windir%\Enter.BAT
в смысле будет отображатся надпись
bla bla, reinstall the program? »нет, в смысле будет работать не только на русской
"Введите">>%windir%\TEMP.BAT что оно обозначает? »"Введите" - первое слово приглашения команды "TIME" ;)
TruLander
20-04-2009, 17:32
:yahoo: я счастлив, Спасиб все теперь читает 2 строчку)).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.