Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: HaK1R
Дата сообщения: 27.07.2009 21:01
Creativie

Код:
echo %username%
echo %userdomain%
Автор: nikitosianmst
Дата сообщения: 27.07.2009 23:50
Ребята,я тут почитал пару страниц...не нашел нужного.........
нужно создать bat файл,для резрвного копирования файлов...
Только нужно чтоб копировалась и структура папок, а не только файлы....
Автор: Maza_Faka
Дата сообщения: 28.07.2009 07:39
nikitosianmst

Код:

XCOPY /?

Автор: Creativie
Дата сообщения: 28.07.2009 08:21
nikitosianmst

Код: xcopy C:\откуда С:\куда
Автор: Upek
Дата сообщения: 28.07.2009 15:14
Помогите пожалуйста...
Есть вот такой код:



Код: FOR %%a IN (%ba% %ka% %ma% %ga% %ra% %pa% %za%) DO (
For %%b in (*.cdx *.tmp *.bak *.fix) do (
del /f /s /q %%a%%b >logdel.txt
ECHO %%a%%b)
)
Автор: Road Runner J
Дата сообщения: 29.07.2009 09:26
ммм, а как выполнить скрипт не залогинившись в систему, в скрипте нужно подмапить сетевой диск для бэкапирования.
Автор: Creativie
Дата сообщения: 29.07.2009 10:27
Road Runner J

Цитата:
не залогинившись в систему

В окне приветствия? (ввод имени+пароля)
Автор: Road Runner J
Дата сообщения: 30.07.2009 17:49
ну да, пользователь не заходит в систему (правда я ещё пока не знаю надо ли этому пользователю заходить заранее в сиситему чтобы создался профиль). но при этом каким-то чудесным образом файлы должны скопироваться на шару подцепленную заранее, вот я и подумал можеь скриптег как-нибудь можно запустить с учётными данными этого пользователя?
Автор: lsgsoftware
Дата сообщения: 01.08.2009 09:35
Батники - это вообще моя любимая тема. Когда я пишу прогу, в которой нужно запускать
внешнее приложение, то я вызываю всегда не EXE-файл, а батник, в котором можно потом не трогая прогу еще чего то дописать - мне очень помогало это всегда.
А вот про xcopy - хорошая штука, много недокументированных возможностей.Я сочинил прогу, которая автоматизирует работу по архивированию, копированию данных(полезна будет для простых юзеров, а может и для сисадминов). А по существу, помимо обвязок - это автоматическое написание батника для запуска xcopy. Посмотреть можно здесь
http://lsgsoftware.narod.ru/copir.html
Автор: spider91
Дата сообщения: 02.08.2009 11:45
подскажите плиз как переместить папку включая все подпапки, и возможно ли ето вообще?
Автор: 01MDM
Дата сообщения: 02.08.2009 12:30
spider91

Если в пределах одного раздела диска, то просто 'move Folder'
Если на другой раздел, то ее надо скопировать и потом удалить:

Код:
@echo off
xcopy /e /i "C:\Folder" "D:\Folder"
rd /s /q "C:\Folder"
Автор: spider91
Дата сообщения: 02.08.2009 14:06
01MDM

На тот же диск . Я пишу - move Folder папка .. - ето не работает. Можно на примере показать как ето делается? И желательно именно переместить папку, так как копирование длится дольше.
Автор: 01MDM
Дата сообщения: 02.08.2009 17:07
spider91

Цитата:
Я пишу - move Folder папка .. - ето не работает.


Ты это делаешь из командной строки или в батнике?
Не забывай заключать названия папок в кавычки, если есть пробелы. Если названия содержат кирилицу, то сохраняй батник в OEM-кодировке или добавляй команду 'chcp 1251 1>nul'

Код:
C:\Documents and Settings\spider91> move C:\Folder "Рабочий Стол\Folder"
Автор: spider91
Дата сообщения: 02.08.2009 17:23
01MDM

Спасибо огромное, я думал move только для файлов и поетому писал


Код: C:\Documents and Settings\spider91> move folder C:\Folder "Рабочий Стол\Folder"
Автор: spider91
Дата сообщения: 02.08.2009 21:49
01MDM

Возникла проблема, я пишу в строке


Код: move /Y "C:\Animations\Animations" "C:\Animations"
Автор: 01MDM
Дата сообщения: 02.08.2009 22:10
spider91
У меня ошибок не возникает, но и смысла в этой команде нет, т.к все остается на своих местах.
Если ты хочешь сократить уровень вложенности папок, то наверное лучше с помощью батника:

Код:
@echo off
pushd "C:\Animations\Animations"
for /f "tokens=*" %%i in ('dir /b /a') do move "%%i" ..\
popd
rd "C:\Animations\Animations"
Автор: spider91
Дата сообщения: 02.08.2009 22:41
01MDM


А можно бз батника обойтись? Мне надо через строку чтоб выполнялось. Я пытался сделать так


Код: move /Y "C:\Animations\Animations" ..
Автор: 01MDM
Дата сообщения: 02.08.2009 23:29
spider91
Ты пытаешься переместить папку в саму себя, а тебе надо переместить ее содержимое. Из командной строки тоже можно:

Код:
C:\> for /f "tokens=*" %i in ('dir /b /a Animation\Animation') do move "%i" Animation
C:\> rd Animation\Animation
Автор: spider91
Дата сообщения: 03.08.2009 09:10
01MDM

Не работает, даже батник. Может я не совсем правильно обьяснил что мне надо, так вот у меня есть папка ,допустим, Game\Animations\Animations\куча папок с подпапками и файлыми. А мне надо чтобы ето выглядело так Game\Animations\куча папок с подпапками и файлыми. Можно ли так переместить папки?


ЗЫ
Ето надо сделать не только на моем компе но и на других юзая при етом командную строку или в крайнем случае батник.
Автор: 01MDM
Дата сообщения: 03.08.2009 11:45
spider91

Может ты что-то делаешь не правильно? У меня все работает. Запускаешь батник, к примеру с рабочего стола, и он должен все содержимое C:\Animation\Animation переместить на один уровень вверх, а саму папку (уже пустую) удалить.
Автор: spider91
Дата сообщения: 03.08.2009 13:28
01MDM

Все, разобрался. Чтобы все перемещалось надо было чтоб строка работала в C:\Animation\Animation, тоесть cd C:\Animation\Animation. Если она будет работать например на диске C:\ а не в нужной папке то файлы не перемещаются, так как после выполнения


Код: for /f "tokens=*" %i in ('dir /b /a Animation\Animation') do move "%i" Animation
Автор: Toga2007
Дата сообщения: 05.08.2009 12:48
как узнать имя компьютера на котором запущен батник?
Автор: Irenn
Дата сообщения: 05.08.2009 14:55
Доброе время суток! Кто может подсказать,не работает поиск,с командной строки вообще не могу зайти в поиск, через пуск-включается но не работает (ничего не ищет) что это может быть?
Автор: HaK1R
Дата сообщения: 05.08.2009 23:44
Toga2007

Код:
@echo %userdomain%
Автор: korsar77
Дата сообщения: 06.08.2009 15:18
spider91Как при помощи cmd начать последовательно установку нескольких программ
Автор: ScreamWolf
Дата сообщения: 07.08.2009 13:12
korsar77
Установку никак, а вот запуск через start /wait proga.exe

Код: start /wait programma1.exe
start /wait programma2.exe
start /wait programma3.exe
start /wait programma3.exe
..................
Автор: Cosmogor
Дата сообщения: 07.08.2009 13:51
Доброго времени суток

Помогите с батником приведённым ниже.
Вся проблема в переменной %RAR%
Путь к rar.exe записывается правильно в файл 1.txt
А как доходит до архивирования не находит файл
rar.exe и всё тут.

Вопрос:
Какую переменную подставить, что-бы началось архивирование?

В принципе можно написать путь до rar.exe полностью,
но хотелось бы включить пойск rar.exe.

Код

SET "RAR=dir "%ProgramFiles%\Rar.exe" /b /s /a"
SET SrcPath1=C:\MENU
SET DestPath=C:\Backup
SET ArhName1=MENU

%RAR% u -m5 -dh -as -agYYYY_MM_DD -ilog%DestPath%\Log.txt "%DestPath%\%ArhName1%_.rar" "%SrcPath1%"

%RAR% >1.txt


Спс.
Автор: 01MDM
Дата сообщения: 07.08.2009 14:54
ScreamWolf

Цитата:
заранее не известен, т.е. путь может любой глубены

Но он существует? Или его надо определять?


Цитата:
как разбить его на части, т е
1 - С:
2 - windows
3 - system32
4 - notepad.exe
и при этом необходимо из этого же пути узнать само имя файла (notepad.exe)


Если путь известен (получен), то:

Код:
@echo off
setlocal

set "notepad=C:\Windows\System32\notepad.exe"
call:set "%notepad%"

echo %disk%
for /f "tokens=2 delims==" %%i in ('set path_') do echo %%i
echo %filename%
goto:eof

:set
set "filename=%~nx1"
set "disk=%~d1"

:path
set /a tok+=1
for /f "tokens=%tok% delims=\" %%i in ("%~p1") do (
if not "%%i"=="" (
set "path_%tok%=%%i"
goto:path
) else (
goto:eof
)
)
Автор: igor_andreev
Дата сообщения: 07.08.2009 15:05

Цитата:
SET "RAR=dir "%ProgramFiles%\Rar.exe" /b /s /a"

Это зачем так? Достаточно просто:

Код:
SET RAR="%ProgramFiles%\Rar.exe"
Автор: Cosmogor
Дата сообщения: 07.08.2009 15:20
01MDM

Всего-то надо было ! Большое спасибо!

Ещё маленький вопросик.

Ну никак не возвращает полный путь,
всё пишет "C:\Program" не существует или не является каталогом.
Ну оно и понятно, всё дело в пробеле, но я уж проставил кавычки
везде где можно было, и в реестре путь тоже с кавычками, и всё равно пишет
( Путь "C:\Program" не существует)
Помогите пжл.

Код

set "RAR=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe"

setlocal
for /f "tokens=3" %%a in ('reg query "%RAR%" /v "Path" ^| find /i "Path"') do set "instdir=%%a"

explorer "%instdir%\"


В этом коде пытаюсь вытянуть путь к RAR.exe
в переменную.
Спс.

Вот тот же код , но работает отлично!

Код

setlocal
for /f "tokens=3" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\Cfg" /v MachineGuid ^| find /i "MachineGuid"') do set "instdir=%%a"
explorer "%SYSTEMDRIVE%\System Volume Information\_restore%instdir%"


Этот код открывает папку System Volume Information,
хотя двойным кликом её не открыть.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.