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

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

Автор: klserg
Дата сообщения: 28.12.2009 12:25
mugil_cephalus


setlocal enabledelayedexpansion
for %%i in (путь\???_???_???.???) do set "var=%%i" &set "var=!var:~0,4!!var:~-4!"

не работает

Добавлено:
Точнее

setlocal enabledelayedexpansion

for %%i in (c:\temp\*.dbf) do set "var=%%i" &set "var=!var:~0,4!!var:~-4!"

файлы в каталоге есть, прбелы в конце строки удалил.
Не работает
Автор: mugil_cephalus
Дата сообщения: 28.12.2009 12:44
setlocal enabledelayedexpansion
for %%i in (путь\???_???_???.???) do set "var=%%~nxi" &set "var=!var:~0,4!!var:~-4!"
Автор: Zzzveroboy
Дата сообщения: 28.12.2009 13:31
Печатаем с сетевой шары на сетевой принтер Kyocera4020 отправляем мульти-tif небольшие файлы сканов по 70-90кб в каждом по 4-5 страниц, получается после нескольких файлов пауза. принтер останавливается, причем не обязательно на новом файле, может 3-4 файла отпечатать без остановки. потом в середине файла после его двух листов остан0овиться и допечатать остальные. Используем программу IrfanViev.
Подскажите какой создать батник чтоб используя команду
rundll32.exe shimgvw.dll,ImageView_PrintTo /pt "ПутьКТифу" "\\сервер\Имя принтера"
можно было печатать много мультитифов, причем мультитифы лежать на сетевом диске A подключенном, в каталоге ABC, в этом каталоге для каждого файла генерируется свои подкаталоги случайного набора букв цифр(типа wpv2_fhvhc34ds). Задача сделать так, чтоб на печать отправились файлы из всех этих каталогов. Подскажите какой код должен быть в этом БАТ файле? Спасибо
Автор: Dr29BArt
Дата сообщения: 28.12.2009 18:06
Магистры командно-консольные прошу помощи вновь.
Необходимо в указанном файле (ввод адреса и имени с клавы) найти все слова с литерой "r" и отсортировать их в порядке спадания. Вот есть:
@echo off
set /p file="Введите адрес, имя и расширение файла: "
if not exist %file% (@echo Такого файла не существует)
pause
Автор: webms
Дата сообщения: 02.01.2010 16:25
Помогите написать батник для копирование с фтп файлы вместе с папками

вот что смог сделать я:

d:\windows\system32\ftp -s:C:\Backup\from_mos.ftp

from_mos.ftp:
-------------------
open ftp.domen.ru
name
pass
prompt
binary
lcd C:\Backup
cd httpdocs
mget *.*
disconnect
bye
все конектиться вверно, начинает скачку, но только файлы, без папок, папки не качаются...

помогите плз, нужно чтоб он скопировал с фтп все что есть в папке httpdocs вместе с папками и подпапками

за ранее спасибо
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 17:38
Dr29BArt
попробуй
@echo off
set /p file="Введите адрес, имя и расширение файла: "
type %file%|find "r"|sort
if not exist %file% (@echo Такого файла не существует)
pause

Добавлено:
Zzzveroboy
for /r a:\abc %%i in (*.tif) do rundll32 shimgvw.dll,ImageView_PrintTo /pt "%%i" "\\сервер\Имя принтера"

Добавлено:
webms
попробуй поискать инфу в справке - start/run:
hh ntcmds.chm::/ftp__subcommands.htm
Автор: webms
Дата сообщения: 02.01.2010 19:16
mugil_cephalus

огромное спасибо за ответ, только я не понял где искать.. Очень нужно..помогите плз

Добавлено:
нашел, я это ранее уже смотрел.. не могу найти ответ, поэтому попросил у вас помощи (вы всегда оперативно помогаете)
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 19:34
webms

Цитата:
я это ранее уже смотрел.. не могу найти ответ,


не берусь утверждать точно, но, имхо, тогда командой ftp этого не сделаешь
см. wget - консольная утилита для скачивания файлов по HTTP, HTTPS и FTP протоколам http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16430
Автор: webms
Дата сообщения: 02.01.2010 19:55
не получилось.. если вам не сложно..вы можете посмотреть как решить мою проблему...

буду очень благодарен
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 20:04
вот же:
Ftp: dir
Выводит список файлов и подкаталогов в каталоге, расположенном на удаленном компьютере.

можно:
1) вывести список remote subdir
2) создать такую же local subdir
3) зайти в remote subdir
4) копировать
Автор: webms
Дата сообщения: 02.01.2010 20:08
иногда мне кажеться что задача моя невыполнимая, ибуду ежедневно копировать ручками...

я пробавал, создал папку как и в remote subdir и врубил свой батник, так он все равно игнорирует и копирует все в одну папку
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 20:25
webms
я лазил в ftp через GUI, через cli - ни разу
mget копирует и файлы из подпапок тоже?

Добавлено:
вообще, интенция такая:
lcd C:\Backup\subdir1
cd httpdocs\subdir1
Автор: webms
Дата сообщения: 02.01.2010 20:43
угу..тоже
Автор: mugil_cephalus
Дата сообщения: 02.01.2010 23:11
webms

1) dir'om получаешь листинг подпапок в папке httpdocs и сохраняешь листинг в *.txt
2) md'om создаешь зеркало подпапок в локальной папке C:\Backup (беря инфу в *.txt)
3) и для каждой подпапки:
a) lcd C:\Backup\subdir1
b) cd httpdocs\subdir1
c) копирование файлов

есть какой-нить ftp-addresss без password requered, чтоб я мог потестировать (вслепую неудобно)?

F:\Documents and Settings\admin>ftp
ftp> open ftp.microsoft.com
Связь с ftp.microsoft.akadns.net.
220 Microsoft FTP Service
Пользователь (ftp.microsoft.akadns.netnone)): dir
331 Password required for dir.
Пароль:

------------

Код: (
echo open ftp.domen.ru
echo name
echo pass
echo prompt
echo cd httpdocs
echo dir c:\backup\list.txt
echo disconnect
echo bye
)>c:\backup\from_mos.ftp
start "" /wait ftp -s:c:\backup\from_mos.ftp
for /f "tokens=*" %%i in ('type c:\backup\list.txt') do (
md c:\backup\%%~ni
1>c:\backup\from_mos.ftp (
echo open ftp.domen.ru
echo name
echo pass
echo prompt
echo binary
echo lcd C:\Backup\%%~ni
echo cd httpdocs\%%~ni
echo mget *.*
echo disconnect
echo bye
) && start "" /wait ftp -s:c:\backup\from_mos.ftp)
del /q c:\backup\list.txt & del /q c:\backup\from_mos.ftp
Автор: Firstarey
Дата сообщения: 03.01.2010 18:17
Здравствуйте граждане,
никак не соображу такой момент:
необходим батник, который названия файлов с расширением из папки заносил в переменные с последующим предложением выбора который запустить.
в папке много разных файлов с длинными названиями и разными расширениями
Автор: mugil_cephalus
Дата сообщения: 04.01.2010 09:14
Firstarey

Цитата:
необходим батник, который названия файлов с расширением из папки заносил в переменные

setlocal enabledelayedexpansion
set "cnt=1"
for /f "tokens=*" %%i in ('dir /b /a:-d c:\folder') do set "var!cnt!=%%~nxi" &set /a cnt=!cnt!+1


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

вот код от 01MDM ( http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=500#9 )

Цитата:
В смысле выбор задачи для выполнения интерактивно? Можно.


Код:
@echo off
echo [1] Task1
echo [2] Task2
echo [3] Task3

set /p tsk="Choose a task by number: "

if not defined tsk goto:eof
if %tsk%==1 goto:1
if %tsk%==2 goto:2
if %tsk%==3 goto:3
goto:eof

:1
echo 1
goto:eof
:2
echo 2
goto:eof
:3
echo 3
goto:eof


Автор: mugil_cephalus
Дата сообщения: 05.01.2010 10:18
Zzzveroboy
в книге Уильям Станек - Командная строка Microsoft Windows http://rapidshare.com/files/89629093/Stanek_CLI_MS_Win.rar
есть глава про спулинг - кажется, Управление сетевыми принтерами и службами печати, там про утилиты коммандной строки для спулинга печати (дают много полезной инфы для отладки и администрирования, конфигурирования)
Автор: bredonosec
Дата сообщения: 05.01.2010 10:56
mugil_cephalus
а можно попросить немного иную, хоть и близкого рода задачу?
Доступа по фтп нет, есть доступ по линкам вида \\сервер\папка
Связь очень плохая (порядка сотен байт в секунду), а надо 2-3 раза в неделю сливать документ весом порядка 3-4 метров. То есть, надо организовать так, чтоб каждый раз сливало _только один новый_ док, а не все имеющиеся на серве. При этом желательно, чтоб организовывало расположение документов аналогично такому же на серве.
\\сервер\общая папка\месяц\ документ1, второй документ, ....
То, есть. если правильно понял,
Цитата:
echo dir c:\backup\list.txt
останется, только листинг с подпапками нужно. И потом как-то сравнение с листингом имеющегося локально, чтоб только новое сливать.

можно подсказать, как?
Автор: mugil_cephalus
Дата сообщения: 05.01.2010 11:37
bredonosec
что покажет команда dir, принадлежащая локальному контексту комстроки (cmd.exe) я могу посмотреть легко через тест кода в строке, а чего покажет команда dir в контексте ftp.exe я могу только догадываться (в ntcmds.chm мало чего сказано и вслепую - не видя вывода dir в режиме ftp - можно только догадываться)
1) первая проблема в листинге remote dir - это, предпологаю, что в файле list.txt нужно как-то определять: что есть папка, а что - файл. эту проблему можно попытаться обойти через расширение - *.ext (если оно есть, то файл (сработает за исключением случаев с файлом без расширения)) беда в том, что у dir в локал. контексте cmd.exe - много возможностей, а в ftp - судя по всему только листинг без сортировки


Цитата:
Доступа по фтп нет, есть доступ по линкам вида \\сервер\папка

это через wget?
сервер в инете или в lan?

p.s.
у меня изолированная workstation + инет (ADSL), - так что, не имея возможности узреть результаты отработки кода и, соответствено, его парсинга, можно только предполагать что-то

p.p.s.
1) wget'a у меня нет (не работал с ним, ничего сказать не могу)
2) dir из контекста ftp.exe бесполезна если нет ftp-доступа
3) если lan, - предполагаю, что через net use \\сервер\папка можно поработать с dir из контекста cmd.exe
Автор: bredonosec
Дата сообщения: 05.01.2010 12:45

Цитата:
эту проблему можно попытаться обойти через расширение - *.ext (если оно есть, то файл (сработает за исключением случаев с файлом без расширения))

возможно, облегчит момент, что файлы должны быть только пдф формата.

фтп.ехе - не совсем понял, к чему - доступа по фтп нету.
Цитата:
это через wget?
сервер в инете или в lan?

вгетом не работал. это внутренняя сеть конторы, раскиданной по стране.
То есть, можно воспринять как лан (хоть физически и через инет связь) - все айпи вида 10,1,*,*

Цитата:
предполагаю, что через net use \\сервер\папка можно поработать с dir

что-то вроде
net use M: \\server\folder
dir M>list.txt
?
Да, дуаю, пройдет.

а чтоб заходил в подпапки и там проверял?
Автор: mugil_cephalus
Дата сообщения: 05.01.2010 13:05
net use m: \\server\folder
for /r m: %%i in (*.pdf) do @echo %%i

Добавлено:
bredonosec

попробуй потестировать код
зеркало для локального диска c: (можешь заменить букву на нужную)



Код: @echo off
net use m: \\server\folder
setlocal enableextensions
setlocal enabledelayedexpansion
for /r m: %%i in (*.pdf) do (
set "pth=%%~pi"
set "pth=!pth:~0,-1!"
2>nul md c:!pth!
echo no|copy /-y %%i c:!pth! 1>nul 2>&1 &&goto:eof)
Автор: bredonosec
Дата сообщения: 05.01.2010 15:40

Цитата:
попробуй потестировать код

на серв заходит, локально папку создает, а копирования файла что-то не вижу...
И проверку на существование - чтоб не копировать уже существующие - тоже..

апд.
таки скопировал. Просто при закрытом окне незаметно было как пересылал (связь, как и говорил, просто жесть).
странно отрабатывает. (
Первые 2 файла сделало, а потом застряло. Новые не копирует вообще. Не понял юмора
Автор: webms
Дата сообщения: 05.01.2010 16:41
mugil_cephalus


Спасибо ОГРОМНОЕ!!!
я этот код так понимаю(правильно?? или как запустить через бат?):

старт.bat
------

Код:
call listing.bat
call backup.bat
call del.bat
Автор: storm2005
Дата сообщения: 05.01.2010 16:58
Необходимо скопировать несколько каталогов с заранее известными именами.
Пути и имена передаю параметрами
%1 — каталог в котором находятся различные каталоги
%2 — куда копируется
%3. %4,...N — имена различных каталогов.


Код: if /I [%4] NEQ [] goto p4
if /I [%3] NEQ [] goto p3

:p4
set db_name2=%4

:p3
set db_name1=%3

set db_dir=%1
set temp_dir=%2

rem копирует двумя возможными способами
xcopy %1\%3 %2\%3 /s /e /i /h /f
xcopy %db_dir%\%db_name2% %temp_dir%\%db_name2% /s /e /i /h /f
Автор: ndch
Дата сообщения: 05.01.2010 20:40
Кто-нибудь может просвятить, почему
Dr.Web Сканер для Windows v5.00.10

считает что

Код: for %%i in (*.bat) do
Автор: 526549
Дата сообщения: 06.01.2010 02:10
Прошу совета. Провожу копирование файлов в коммандной строке. Очень хочется наглядности. Спасет nircmd со своим shellcopy, но хочется чтобы процесс копирования был в ввиде ASCII прогрессбара прям в коммандной строке. Есть какая нибудь утилита для таких целей? Гугл не спасает
Автор: 01MDM
Дата сообщения: 06.01.2010 05:40
ndch
Наверное считает опасным перебор батников, как вероятность их все выполнить в бесконтрольном цикле.
526549,
Можно самому попробовать. Как пример:
http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1860#4

Автор: bAPMATYXA
Дата сообщения: 06.01.2010 14:40
Пожалуйста напишите кому не трудно батник который бы проводил сброс 30 дней использования винды. Команда такого вида slmgr /rearm Спасибо.
Автор: 526549
Дата сообщения: 06.01.2010 16:30
bAPMATYXA

Код: @slmgr /rearm
Автор: mugil_cephalus
Дата сообщения: 07.01.2010 15:17
bredonosec


Код: REM @echo off
net use m: \\server\folder
setlocal enableextensions
for /r "m:" %%i in (*.pdf) do call:_1 "%%i"
goto:_ps

:_1
set "pth=%~p1"
set "pth=%pth:~0,-1%"
md "c:%pth%"
if not exist "c:%pth%\%~nx1" copy /-y %1 "c:%pth%" &&goto:_ps
goto:eof

:_ps
pause

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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