Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов
Так с этой командой удаляется сама папка temp а мне надо что бы из неё (из папки Temp) удалялись все папки и файлы. »
а в чем разница между одним и вторым, если после первого пересоздавать эту самую папку? Ты хочешь очищать папку Temp ?
ShaddyR, да я хочу очищать папку темп.
да я хочу очищать папку темп »
сколько можно об одном и том же?.. читали 24 (http://forum.oszone.net/showthread.php?p=860543)-ю страницу топика?
xctr, погляди здесь:
Как удалить темповые файлы при выходе из WinXP Home!!! (http://forum.oszone.net/showthread.php?p=341919&highlight=%25temp%25#post341919) //это если вызывать не из bat-файла, но ту же команду.
Если же непосредственно по твоему вопросу - см. здесь (http://forum.oszone.net/post-471638.html#post471638), с учетом комментария (http://forum.oszone.net/post-471656.html#post471656).
>
amel27, кол-во выводимых сообщений у участника в настройках может отличаться от аналогичных настроек у тебя (напр., у меня в данной теме всего 12 страниц и, соответственно, сложно было бы прочесть 24-ю ;)). Корректнее будет называть номер сообщения и давать ссылку непосредственно на него.
Всем спасибо разобрасля :) применил:
cmd /c rd /s /q "%userprofile%\local settings\temp\"
D_Master
23-11-2008, 19:15
Как можно определить ВСЕ жесткие и сьемные диски на компьютере и раскидать по ним определённые файлы и папки?
Petya V4sechkin
23-11-2008, 20:37
D_Master, пример Drives.vbs из Flash Drive Disinfector:
On Error Resume Next
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("_drives.cf")
Set objLogFile = objFSO.OpenTextFile("_drives.cf", ForAppending, True)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
For Each objDisk in objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
If objDisk.DriveType = "2" Or objDisk.DriveType = "3" Then
objLogFile.Write( objDisk.DeviceID)
objLogFile.writeline
End If
Next
Создает файл _drives.cf со списком жестких и съемных дисков.
D_Master
23-11-2008, 21:33
Petya V4sechkin, всё супер, всё копируется, правда осталась небольшая проблемка - скрипт определяет ещё и диск A:\ и пытается накопировать файла туда, как бы этого избежать?
Для копирования использую такой код:
@echo off
cscript copy.vbs >null
For /F "Delims=" %%I In (_drives.cf) Do Call :сopy %%~I
:copy
Set J=%~1
copy marker.file %J:~0% >null
del null
Всем здрасте)
Я сам 0 в командной строке, и даже незнаю с чего начать.. в гугле забил, чёт ничё ненашёл...
надо вообщем чтобы копировал 2 файла из одной папки в другуй с заменой и посли этого запускал приложение..
Спасибо за любую помощ чайнику!
буду очень благодарен!!)
вот так сработало:
D:\Work\cpp\c++test>copy /y test.cpp d:\temp | copy /y main.cpp d:\temp | explorer d:\temp
если надо чтоб при неудачи одноги из копирований (ну сети там нет или ещё чего) запуска не было:
D:\Work\cpp\c++test>copy /y test.cpp d:\temp && copy /y main.cpp d:\temp && explorer d:\temp
если надо чтоб выполнилось первое действие из перечисленных по списку:
D:\Work\cpp\c++test>copy /y test.cpp d:\temp || copy /y main.cpp d:\temp || explorer d:\temp
В общем, при помощи || (=или), && (=и) и скобок можно сформулировать условный запуск нескольких команд в строчке
ещё есть вариант писать батник или скрипт
Блин ничего не понял... тыкал, тыкал.. (
мне нужно
F:/111/download.dat
F:/111/global.dat
F:/111/opera6.ini
перенести с заменой в
E:\Program Files\Opera\profile
и потом автоматически запустить opera.exe....
если не трудно помогите плз..
Уважаемый amel27 подсказал с написанием кода, который прекрасно работает.
@Echo Off
Set PRGDIR=%ProgramFiles%\XXX
Set PRGEXE=yyy.exe
Set PRGNEW=yyy_new.exe
Set PRGOLD=yyy_old.exe
If Not Exist "%PRGDIR%\%PRGNEW%" MSG * "Предупреждение! Обновлений программы не обнаружено!"& Exit
If Exist "%PRGDIR%\%PRGOLD%" DEL /Q /F "%PRGDIR%\%PRGOLD%"
If Not Exist "%PRGDIR%\%PRGOLD%" REN "%PRGDIR%\%PRGEXE%" "%PRGOLD%"
If Not Exist "%PRGDIR%\%PRGEXE%" REN "%PRGDIR%\%PRGNEW%" "%PRGEXE%"
If Exist "%PRGDIR%\%PRGNEW%" MSG * "Ошибка! Обновление программы не произведено, обратитесь к администратору!"& Exit
MSG * "Сообщение! Программа обновлена, для применения изменений необходим выход из программы."
Можно ли, реализовать в данном скрипте, что бы при выводе этих сообщений, в текстовом окне, отображался соответственный значок: http://www.nncron.ru/help/RU/images/icon16.gif http://www.nncron.ru/help/RU/images/icon15.gif http://www.nncron.ru/help/RU/images/icon13.gif или похожий по смыслу.
D_Master
24-11-2008, 05:53
inplust,
@echo off
set dir="E:\Program Files\Opera\profile"
set out=F:\111
copy /Y %out%\download.dat %dir%\
copy /Y %out%\global.dat %dir%\
copy /Y %out%\opera6.ini %dir%\
cd /D E:\Program Files\Opera
start opera.exe
exit
что бы при выводе этих сообщений, в текстовом окне, отображался соответственный значок »через CMD никак, можно через VBS:
On Error Resume Next
PrgDir = "MyProgram" ' Путь относительно %ProgramFiles%
PrgExe = "yyy.exe"
PrgNew = "yyy_new.exe"
PrgOld = "yyy_old.exe"
Set objWSS = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
PrgDir = objWSS.ExpandEnvironmentStrings("%ProgramFiles%") &"\"& PrgDir
PrgExe = PrgDir &"\"& PrgExe
PrgNew = PrgDir &"\"& PrgNew
PrgOld = PrgDir &"\"& PrgOld
If (objFSO.FileExists(PrgNew) = vbFalse) Then
Call MsgBox("Обновлений программы не обнаружено!",32,"Сообщение")
Wscript.Quit
End If
If (objFSO.FileExists(PrgOld) = vbTrue ) Then objFSO.DeleteFile PrgOld
If (objFSO.FileExists(PrgOld) = vbFalse) Then objFSO.MoveFile PrgExe, PrgOld
If (objFSO.FileExists(PrgExe) = vbFalse) Then objFSO.MoveFile PrgNew, PrgExe
If (objFSO.FileExists(PrgNew) = vbTrue ) Then
Call MsgBox("Обновление программы не произведено, обратитесь к администратору!",16,"Ошибка")
Wscript.Quit
End If
Call MsgBox("Программа обновлена, для применения изменений необходим выход из программы.",48,"Предупреждение")
Petya V4sechkin
24-11-2008, 10:03
осталась небольшая проблемка - скрипт определяет ещё и диск A:\ и пытается накопировать файла туда, как бы этого избежать?
Можно добавить проверку MediaType:
On Error Resume Next
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("_drives.cf")
Set objLogFile = objFSO.OpenTextFile("_drives.cf", ForAppending, True)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
For Each objDisk In objWMIService.ExecQuery ("Select DeviceID From Win32_LogicalDisk Where ((DriveType = 2 Or DriveType = 3) And (MediaType = 0 Or MediaType = 11 Or MediaType = 12 Or MediaType Is Null))")
objLogFile.Write(objDisk.DeviceID)
objLogFile.WriteLine
Next
D_Master
24-11-2008, 13:03
Petya V4sechkin, благодарю, всё супер! :up
Несколько вопросов по CMD:
1. Нужна команда позволяющая запуск CMD-файла только в указаной директории, если запустить файл в любой другой - отмена выполнения.
2. Как указать в CMD-файле проверку наличия большого количества файлов (примерно 40), при отсутствии хотя-бы одного из указанных - отмена выполнения.
3. Как указать проверку включена ли служба, если нет - запустить службу.
4. Можно ли прописать в CMD-файл проверку наличия определённого процесса, при отсутствии такого - выход из исполняемого CMD.
5. Если по какой либо причине, например после принудительного завершения процесса CMD.exe, мой CMD-файл прекратил работу, какая должна быть команда самоудаления.
6. Как самоудалить скрытый CMD, [Del /F /Q %0] - не работает.
7. Как прописать в файл дистрибутива svcpack.in_ свою строку?
D_Master, спасиб большое! Выручил! Всё работает! :up
Нужен батник.
Имеется папка cstrike, в ней примерно каждый час появляются 2 новых *.dem файла, имена их примерно такие
cl-0811241311-de_train.dem
cl-0811241301-de_dust2.dem
где:
cl - не меняется
081124 - дата (год/месяц/число)
1311 и 1301 - время (чч/мм)
de_dust2 и de_train - часть имени (имена карт в игре CS 1.6)
Нужно чтоб при запуске батника файлы dem с папки cstrike добавлялись в архив (можно winrar или 7zip) и перемещались в папку demos/%date%/ тоесть каждый день новая папка в которой файлы dem только за етот день. Пример:
demos/24.11.08/cl-0811241311-de_train.dem.rar
demos/24.11.08/cl-0811241301-de_dust2.dem.rar
demos/25.11.08/cl-0811251740-de_nuke.dem.rar
demos/25.11.08/cl-0811251805-de_inferno.dem.rar
чтоб ето было только за последние 5 дней, тоесть когда пойдет 6й день то папка с 1м днем стерлась :)
Только одна проблема наверное, последний созданный файл будет не законченым и каждую секунду будет набирать вес, тоесть нужно сделать чтоб его в архив не бросало и не перемещало.
Батник будет добавлен в Назначенные задания и будет выполнятся каждый час.
Заранее спасибо
Rostlv
1. Каталог запуска ROOT
Set ROOT=C:\TEST
If "%~dp0" NEQ "%ROOT%\" Exit
@Echo Текст скрипта
2. Одноименный LST-файл содержит список обязательных файлов
Set ROOT=C:\WINDOWS
DIR /B/A:-D "%ROOT%\*" >"%~dpn0.tmp"
FindStr /IVBEG:"%~dpn0.tmp" "%~dpn0.lst"
If Not ErrorLevel 1 Exit
@Echo Текст скрипта
3. Так проверить или запустить?.. "NET START /?"
4. Например так:
Set PROCESS=notpad.exe
For /F %%i In ('TaskList^|FindStr /BIC:"%PROCESS%"') Do Set PROCNAME=%%i
If "%PROCNAME%"=="" Exit
@Echo Текст скрипта
5,6 Не вижу разницы между вопросами
ATTRIB -R -H -S "%0"
DEL "%0"
7. распаковать -> записать -> запаковать
Set ROOT=C:\TEST
Set $CAB=%ROOT%\svcpack.in_
Set $INF=%TEMP%\svcpack.inf
Expand "%$CAB%" "%$INF%"
Echo Строка 1 >>"%$INF%"
Echo Строка 2 >>"%$INF%"
makecab /D CompressionType=LZX /D CompressionMemory=21 /L "%ROOT%" "%$INF%"
del /f /q "%$INF%"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC