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

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

Автор: vitrzn
Дата сообщения: 19.04.2009 08:15
Maza_Faka

Всё работает!
Но если запустить батник из папки ConsUpdate , то после выполнения появляются два этих файла , без расширения, нулевой длинны.

єфрышЄ№
яЁшётюшЄ№

Что это может быть?
Автор: Maza_Faka
Дата сообщения: 19.04.2009 08:33
TifonT

Цитата:
Надо как-то через сеть узнавать свободное место на расшаренном диске

FREEDISK /?

Добавлено:
vitrzn

Цитата:
Но если запустить батник из папки ConsUpdate , то после выполнения появляются два этих файла

Каков полный путь директории из которой вы запускаете батник? Приведите код батника.
Автор: vitrzn
Дата сообщения: 19.04.2009 08:56
Maza_Faka

батник запускаю из ConsUpdate, программа создаёт временную папку и не всегда её удаляет, вот и была задача помочь ей в этом.

start /w FTPCons.exe /a
;; > удалить папку со всем содержимым
RD /S /Q "%USERPROFILE%\My Documents\ConsUpdate\TempFiles"
;; > присвоить аттрибуты "скрытый" к папке ConsUpdate
Attrib +H "%USERPROFILE%\My Documents\ConsUpdate"

а вот выполнение:

[more]
C:\Documents and Settings\lik\My Documents\ConsUpdate>start /w FTPCons.exe /a

C:\Documents and Settings\lik\My Documents\ConsUpdate>яряъє ёю тёхь ёюфхЁцшь√ь 1>єфрышЄ№
"яряъє" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Documents and Settings\lik\My Documents\ConsUpdate>pause
Для продолжения нажмите любую клавишу . . .

C:\Documents and Settings\lik\My Documents\ConsUpdate>RD /S /Q "C:\Documents and Settings\vitali
k\My Documents\ConsUpdate\TempFiles"
Не удается найти указанный файл.

C:\Documents and Settings\lik\My Documents\ConsUpdate>pause
Для продолжения нажмите любую клавишу . . .

C:\Documents and Settings\lik\My Documents\ConsUpdate>рЄЄЁшсєЄ√ "ёъЁ√Є√щ" ъ яряъх ConsUpdate 1>я
ЁшётюшЄ№
"рЄЄЁшсєЄ√" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Documents and Settings\lik\My Documents\ConsUpdate>Attrib +H "C:\Documents and Settings\vital
ik\My Documents\ConsUpdate"

C:\Documents and Settings\lik\My Documents\ConsUpdate>pause
Для продолжения нажмите любую клавишу . . .

[/more]
Автор: Maza_Faka
Дата сообщения: 19.04.2009 11:24
vitrzn

Цитата:
батник запускаю из ConsUpdate

То есть так:
%USERPROFILE%\My Documents\ConsUpdate\MyBat.bat?


Цитата:
а вот выполнение:

Сохраните батник в DOS кодировке, с помощью например AkelPad.
Автор: TifonT
Дата сообщения: 19.04.2009 23:36
Maza_Faka
Спасибо, скинул программу на ПК и вот так записываю свободное место в файл
cmd /c E:/freedisk.exe /D E: > E:\free_space.txt
Автор: artemk
Дата сообщения: 20.04.2009 01:37
Maza_Faka
runas /?
читал, после runas /user:domain\username
спрашивает пароль....
нужно так, чтоб он его не спрашивал, а брал сам... прям из батника, или из др файла..
понимаю, что так не правильно и не безопасно, но надо
Автор: DmitriyVassilyev
Дата сообщения: 20.04.2009 07:16
artemk runas /savecred одни раз спросит пароль, вот тока где он его сохранит
Автор: 01MDM
Дата сообщения: 20.04.2009 07:20
artemk

Цитата:
нужно так, чтоб он его не спрашивал, а брал сам... прям из батника, или из др файла..

Конечно не правильно, тогда пользуй psexec
Автор: DmitriyVassilyev
Дата сообщения: 20.04.2009 12:07
Дано, файл формата txt 500 или что то около того строк.
можно как нить батником найти с строке определенное слово, и если это слово найдено удалить строку полностью и так далее до конца файла. в строке максимум 70 символов.

Автор: Rushmore
Дата сообщения: 20.04.2009 14:01

Цитата:
можно как нить батником найти с строке определенное слово, и если это слово найдено удалить строку полностью и так далее до конца файла.


type "ИмяИсходногоФайла" | find /i /v "СловоДляПоиска" >"ИмяФайлаРезультата"

Только есть нюанс: если "СловоДляПоиска" на русском языке, то файл должен быть в OEM-кодировке, иначе ничего не найдется.
Автор: DmitriyVassilyev
Дата сообщения: 20.04.2009 14:04
Rushmore Албанский, сейчас попробую. Сенкс
Автор: NEITRYNO
Дата сообщения: 20.04.2009 15:42
01MDM СПАСИБО ОГРОМНОЕ !!!

А есть ли еще какая нить команда чтоб непоказывалось черное окно ???
Автор: Xma111
Дата сообщения: 20.04.2009 23:45
А не подскажите еще один вопросик:

Имеются каталоги с названиями типа
01_04\
02_04\
Это дата число_месяц
и в них файлы
*_01_04.*
*_02_04.*

Как можно организовать их поиск на сменном носителе, если он все время меняется в букве диска и можно ли привязаться датой к поиску значений такого вида 01_04?


Надеюсь внятно написал, заранее благодарю))))
Автор: 01MDM
Дата сообщения: 21.04.2009 11:53
Xma111
На счет условия поиска не совсем понял, поэтому общий вариант.

Код:
@echo off
wmic logicaldisk where drivetype="2" get caption /value 1>1.tmp

for /f "tokens=2 delims==" %%i in ('type 1.tmp') do call:search "%%i"
del 1.tmp
goto:eof

:search
dir /b /s %1 2>nul | findstr "[0-9]_[0-9]*\..*"
Автор: shraybikus
Дата сообщения: 21.04.2009 16:58
Помогите пожалуйста очистить каталог FTP. Нужно его очистить вместе со всеми подкаталогами.
mdelete * чистит всё содержимое подкаталогов, а надо грохнуть сами подкаталоги (их имена всё время разные). А для rmd нужно конкретные имена подкаталогов указывать, по маске не работает.
Автор: vitrzn
Дата сообщения: 21.04.2009 23:10
Есть батник:

copy F:\cd\LAW\*.* D:\Consultant\RECEIVE\
start "" "D:\consultant\cons.exe" /adm /receive /base* /yes /noreindex0
copy F:\cd\PBI\*.* D:\Consultant\RECEIVE\
copy F:\cd\QUEST\*.* D:\Consultant\RECEIVE\
pause
D:\Consultant\cons.exe /adm /receive /base* /yes

(1.) Т.е. он копирует файлы из папки Law в папку Receive
(2.) Запускает их обработку (пополнение)
(3.) Не дожидаясь завершения процесса cons.exe продолжает дальше копирование
(4.) Останавливается и ждёт нажатия "любой кнопки", а фактически нужно дождаться завершения процесса cons.exe .

Вопрос

Как можно дополнить этот батник, чтобы он после окончания копирования проверял наличие в оперативке процесса cons.exe и ждал его окончания и потом запускал то что после pause и соот. если этого процесса cons.exe в оперативке уже нету то запускал то что после pause ?

Т.е. фактически убрать pause и не ждать когда кто-то нажмёт кнопочку.

Вроде понятно изложил .
Автор: Cosmogor
Дата сообщения: 22.04.2009 13:37
Добрый день.

Есть текст в *.txt
код:

Slovo
Slovo

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

SlovoSlovo


Спс.
Автор: Elroir
Дата сообщения: 22.04.2009 14:22
Cosmogor

Код:
@echo off
for /f "tokens=*" %%a in (1.txt) do set /p=%%a<nul>>2.txt
Автор: Cosmogor
Дата сообщения: 22.04.2009 14:33
Elroir

Спасибо!
Автор: Cosmogor
Дата сообщения: 23.04.2009 05:56
Всем здравствуйте.

Други помогите, пишу батник с таким текстом.

код:
@echo cscript //nologo /e:jscript "%~f0" 10000>>1.txt

В результате в файле 1.txt должно быть написано:

код:
cscript //nologo /e:jscript "%~f0" 10000

А, вместо этого пишется:

код:
cscript //nologo /e:jscript "C:\Љ®ЇЁп Џа®нЄв.bat" 10000

Вопрос: Что не так я делаю?

Проблему решил сам.

код:
cscript //nologo /e:jscript "%%~f0" 10000
Вот так должно быть.

Извиняюсь.
Автор: Rushmore
Дата сообщения: 23.04.2009 06:04
vitrzn

Цитата:
Как можно дополнить этот батник, чтобы он после окончания копирования проверял наличие в оперативке процесса cons.exe и ждал его окончания и потом запускал то что после pause и соот. если этого процесса cons.exe в оперативке уже нету то запускал то что после pause ?

start /w D:\Consultant\cons.exe /adm /receive /base* /yes

и выкинуть pause.
Автор: vitrzn
Дата сообщения: 23.04.2009 06:56
Rushmore

Вся проблема в том что не на всех компьютерах при завершении копирования, процесс Cons.exe уже завершился !!!
Поэтому-то и нужно проверка оперативки на наличие его. Если есть - то подождать завершения, а если нет - то продолжать батник дальше.
Автор: 01MDM
Дата сообщения: 23.04.2009 07:58
vitrzn

Код:
:check
ping -n 4 localhost 1>nul
tasklist | findstr /i cons.exe 1>nul && goto:check
Автор: Cosmogor
Дата сообщения: 23.04.2009 16:23
Добрый день.

Подскажите пожалуйста, как удалить знак =
в начале стоки в файле *.txt ?

код:

=multi

Что-бы получилось вот так:

код:

multi

Спс.
Автор: Rushmore
Дата сообщения: 23.04.2009 16:26
vitrzn


Цитата:
Вся проблема в том что не на всех компьютерах при завершении копирования, процесс Cons.exe уже завершился !!!


А нельзя ли сначала всё скопировать, а потом уже спокойно обновлять?
Автор: 01MDM
Дата сообщения: 23.04.2009 18:06
Cosmogor

Код:
@echo off
sed "s/^=//" 1.txt | more 1>1.tmp
move 1.tmp 1.txt
Автор: Xma111
Дата сообщения: 23.04.2009 21:39

Цитата:
vitrzn


Не легче ли это


Код:
REM Путь каталогу с К+ пользователя
Set Localconsultant=C:\Consultant
REM Путь каталогу с обновлением К+ на CD
REM Set Mobilconsultant=D:\cd

Cd ..
Cd Receive
Copy %Mobilconsultant%\Law\*.*
Copy %Mobilconsultant%\Spb\*.*
Copy %Mobilconsultant%\Quest\*.*
Copy %Mobilconsultant%\Pbi\*.*
Copy %Mobilconsultant%\Ppn\*.*
%Localconsultant%\Admin\Rar.exe e -v -y *.rar
Attrib -R *.*
Del %Localconsultant%\Receive\*.rar
Del %Localconsultant%\Receive\*.txt
Cd ..
Start /wait Cons.exe /adm /receive /base* /yes
Start /wait Cons.exe /adm /usr /base* /yes
Start /wait Cons.exe /adm /quest /base* /yes
Cd Receive
%Localconsultant%\Admin\Uinf3000.exe
Xcopy *.usr %Localconsultant%\Receive\firma\
Автор: Cosmogor
Дата сообщения: 24.04.2009 08:53
01MDM

Спасибо за подсказку!
С помощью Sedа всё отлично получается.

Есть ещё один маленький вопросик, а средствами Windows без Sedа? Или это невозможно?
Пример:

код:

for /f "tokens=*" %%a in (1.txt) do call :_replace %%a
goto eof
:_replace
set i=%*
echo %i%
SET i=%iзнак равно)=%
echo %i%>2.txt
goto eof
:eof

Пробовал этим кодом, но знак равно не удаляется
Я даже не знаю чем знак равно заэкранировать.

Спс.
Автор: 01MDM
Дата сообщения: 24.04.2009 09:30
Cosmogor
Это возможно, но как показывает практика, чистые батники не лучшее решение для парсинга текста. Есть много нюансов, которые просто нельзя заранее предусмотреть. Да и намного медленнее все работает.

Код:
for /f "tokens=*" %%a in (1.txt) do call :_replace %%a
goto:eof

:_replace

set i=%*
echo %i%
if "%i:~0,1%"=="=" SET i=%i:~1%
echo %i%>>2.txt
Автор: Cosmogor
Дата сообщения: 24.04.2009 17:21
01MDM

Ух ты! Всё работает на ура!!!

А я тут бился над этим вопросом, ну никак не получалось.

Вот есть же понимающие люди в этих вопросах,
такие как 01MDM, Elroir.
Большой + вам 01MDM, спасибо большое!!!!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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