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

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

Автор: mozers
Дата сообщения: 09.11.2008 15:45
Ortios
Цитата:
Работает если оформить в виде батника.
Собственно для того, чтобы избавится от батника я и пытался записать эти 2 строчки в одной строке...
Вот не понятно почему, работая из батника, эта конструкция не работает так?:
Код: CMD /C setlocal enabledelayedexpansion & set var=test & echo !var!
Автор: 01MDM
Дата сообщения: 09.11.2008 16:12
mozers
Команда `setlocal` работает только в пакетных файлах. Для отложенного расширения переменных среды в командной строке используется `cmd /v:on`:


Код:
CMD /v:on /c "set var=test & echo !var!"
Автор: AHAKOHDA
Дата сообщения: 10.11.2008 02:03
Ребят!
я пробовал батником завершить Камфрог видеочат (www.camfrog.com)
прописано в батник название файла из процесса Диспетчера задач:

TASKKILL /IM Camfrog Video Chat.exe /F /T

Не за что не завершается!
Винда ХР ПРО пак 2, права админские.
Что посоветуете?
Автор: Adramelek
Дата сообщения: 10.11.2008 04:41
AHAKOHDA
Название файла в кавычки бери, если там пробелы есть.
Автор: Kilyan
Дата сообщения: 10.11.2008 09:05

Цитата:
Спецы нужна помощь!!!

FOR /F "tokens=3 delims= " %%a IN ('reg query "HKCU\Software\Borland\Delphi\7.0\library" /v "Search Path"') DO set path=%%a

Таким мокаром запихиваю в переменную (или в файл) - но содержимое ключа настолько велико - что все значение не вписывается ни в файл ни в переменную. В чем проблема?
Помогите решить!

Нужно все содержимое ключа реестра засунуть в переменную, а у меня и половина почему то не вписывается - лишь только 4096символов из 7827.

Слезно прошу!!!!


Не верю, что ни у кого подобных проблем не возникало!
Ответ нужен срочно - пожалуйста помогите!
Автор: demon1981
Дата сообщения: 10.11.2008 13:28
подскажите как батником понять что за айпишником комп или принтер? надо просканировать подсеть. Скажем 192.168.10.х и отобрать только принтера в текстовик

Добавлено:
Kilyan
а если разобрать строку дальше? скажем делимы определить как точка запятой... пробовал?
Автор: Elroir
Дата сообщения: 10.11.2008 13:57
Kilyan
Слишком круглое число 4096 - значит у тебя в системе ограничение именно на такой размер символов в переменной.
Я видел ограничения от 2047 и до 8-и тысяч с чем-то.
Я, в свое время, не нашел какого-либо способа изменить это ограничение.
Автор: Kilyan
Дата сообщения: 10.11.2008 14:02
demon1981
мне не нужно ее делить и разрезать - мне она нужна целиком (своего рода Search Path)
Elroir
Очень плохо. Но очень нужно. млин.
Автор: Elroir
Дата сообщения: 10.11.2008 14:08
Kilyan
Выложи здесь, под тегом more, содержимое этого ключа. Я попробую покрутить.
Автор: Kilyan
Дата сообщения: 10.11.2008 15:03
Elroir
[more]
C:\Program Files\Borland\Delphi7\MyComponents\Utils\EurekaLog 6\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\ComponentAce\AbsoluteDatabase\Lib\Delphi 7;$(DELPHI)\Lib;$(DELPHI)\Bin;$(DELPHI)\Imports;$(DELPHI)\Projects\Bpl;$(DELPHI)\Rave5\Lib;C:\Program Files\Borland\Delphi7\MyComponents\Accuracer\Source;C:\Program Files\Borland\Delphi7\MyComponents\AlphaSkins;C:\Program Files\Borland\Delphi7\MyComponents\AlphaSkins\AlphaDB;C:\Program Files\Borland\Delphi7\MyComponents\ComponentAce\AbsoluteDatabase\Source;C:\Program Files\Borland\Delphi7\MyComponents\ComponentAce\FlexCompress\Source;C:\Program Files\Borland\Delphi7\MyComponents\ComponentAce\ZipForge\Source;C:\Program Files\Borland\Delphi7\MyComponents\Crypto\Crypto\Source;C:\Program Files\Borland\Delphi7\MyComponents\PngComponents\Source;C:\Program Files\Borland\Delphi7\MyComponents\pngimage;C:\Program Files\Borland\Delphi7\MyComponents\RX\Units;C:\Program Files\Borland\Delphi7\MyComponents\VCLSkin\source;C:\Program Files\Borland\Delphi7\MyComponents\VCLZIP\source;C:\Program Files\Borland\Delphi7\MyComponents\ZipTV07;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\ElasticForm;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\AboutVersion;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\autorunner;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\Beeper;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\blink_component\Source;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\BMDelphiThread;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\CodePage;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\CoolTrayIcon;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\DBF;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\DropFile;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\EasysizeForm;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\executefile;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\FileStorage;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\Gradient;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\GruCredits;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\HotLog;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\LabelURL;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\Lines;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\magdskfmt10;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\mail2000;C:\Program Files\Borland\Delphi7\MyComponents\FastReport 4\Source;C:\Program Files\Borland\Delphi7\MyComponents\TMS Component Pack;C:\Program Files\Borland\Delphi7\MyComponents\TsiLang\Units;C:\Program Files\Borland\Delphi7\MyComponents\TsiLang\Units\Auxilary;C:\Program Files\Borland\Delphi7\MyComponents\AsciiDataset\Source;C:\Program Files\Borland\Delphi7\MyComponents\MX\mxOneInstance\Component;c:\program files\borland\delphi7\mycomponents\storage\delphi7;C:\Program Files\Borland\Delphi7\MyComponents\Storage\Source;C:\Program Files\Borland\Delphi7\MyComponents\xqsource;C:\Program Files\Borland\Delphi7\MyComponents\xqsource\QBUILDER;C:\Program Files\Borland\Delphi7\MyComponents\PaxCompiler2;C:\Program Files\Borland\Delphi7\Source\Indy;C:\Program Files\Borland\Delphi7\MyComponents\TMS Scripter Studio Pro;C:\Program Files\Borland\Delphi7\MyComponents\TMS Scripter Studio Pro\imports\delphi7;C:\Program Files\Borland\Delphi7\MyComponents\TMS Scripter Studio Pro\designer;C:\Program Files\Borland\Delphi7\MyComponents\FastReport 4\Pack\frxVCLZip;C:\Program Files\Borland\Delphi7\MyComponents\Almediadev\DynamicSkinForm\dsfsb\components;C:\Program Files\Borland\Delphi7\MyComponents\Almediadev\DynamicSkinForm;C:\Program Files\Borland\Delphi7\MyComponents\TMS.GUIMotion;C:\Program Files\Borland\Delphi7\MyComponents\ShellBrowser Components\Delphi7\lib;C:\Program Files\Borland\Delphi7\MyComponents\ShellBrowser Components\TNT\Source;C:\Program Files\Borland\Delphi7\MyComponents\ShellBrowser Components\TNT\Design;C:\Program Files\Borland\Delphi7\MyComponents\TMS Security System;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\IbDac\Demos\ThirdParty\FastReport\FR4\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\IbDac\Demos\ThirdParty\FastReport\FR4;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\MyDac\Demos\ThirdParty\FastReport\FR4;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\MyDac\Demos\ThirdParty\FastReport\FR4\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Odac\Demos\ThirdParty\FastReport\FR4\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Odac\Demos\ThirdParty\FastReport\FR4;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Sdac\Demos\ThirdParty\FastReport\FR4;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Sdac\Demos\ThirdParty\FastReport\FR4\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\Easy_Compression_Library_3.10;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\RegType;C:\Program Files\Borland\Delphi7\MyComponents\MX\mxnativeexcel\COMPONENT;C:\Program Files\Borland\Delphi7\MyComponents\XLSReadWriteII30\Src;C:\Program Files\Borland\Delphi7\MyComponents\AlphaSkins\Other;C:\Program Files\Borland\Delphi7\MyComponents\PaxCompiler2\Source;C:\Program Files\Borland\Delphi7\MyComponents\MX\mxPluginLoader\COMPONENT;c:\program files\borland\delphi7\mycomponents\mycomponent\logindialog;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\EzVirtualDataset\Source;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\dclldr;C:\Program Files\Borland\Delphi7\MyComponents\TeeChart\TeeTree\Compiled\Delphi7\Lib;c:\program files\borland\delphi7\mycomponents\mycomponent\picshow;C:\Program Files\Borland\Delphi7\MyComponents\TMSInstrumentationWorkshop;C:\Program Files\Borland\Delphi7\MyComponents\XLSSuit\Package\D7;C:\Program Files\Borland\Delphi7\MyComponents\TeeChart\Sources\Compiled\Delphi7\Lib;C:\Program Files\Borland\Delphi7\MyComponents\PngComponents\Delphi;C:\Program Files\Borland\Delphi7\MyComponents\PngComponents\Design;C:\Program Files\Borland\Delphi7\MyComponents\PngComponents\Include;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\MyDac\Lib;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\MyDac\Bin;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Sdac\Lib;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Sdac\Bin;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Odac\Lib;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\Odac\Bin;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\IbDac\Lib;C:\Program Files\Borland\Delphi7\MyComponents\CoreLab\IbDac\Bin;C:\Program Files\Borland\Delphi7\MyComponents\PaxCompiler2\Import;C:\Program Files\Borland\Delphi7\MyComponents\RC5\Lib\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\TMS Advanced Charts;C:\Program Files\Borland\Delphi7\MyComponents\TeeChart\Sources;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\delphiarea;C:\Program Files\Borland\Delphi7\Source\ToolsAPI;C:\Program Files\Borland\Delphi7\Source\Vcl;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\LogonDlg;C:\Program Files\Borland\Delphi7\MyComponents\EMS Advanced Data Export\Source;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\EasyTable.v6.30;C:\Program Files\Borland\Delphi7\MyComponents\FastReport 4\LibD7;C:\Program Files\Borland\Delphi7\MyComponents\FastReport 4\Pack\frxAddFunction;C:\Program Files\Borland\Delphi7\MyComponents\FastReport 4\Pack\frxAdvPicture;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\CollapsePanel;C:\Program Files\Borland\Delphi7\MyComponents\MyComponent\ehlibrus\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\IPWorks V8 Delphi Edition\pas;C:\Program Files\Borland\Delphi7\MyComponents\Utils\CS4\Lib\Delphi7;C:\Program Files\Borland\Delphi7\MyComponents\XLSReadWriteII30\Package\D7
[/more]

мне нужна эта переменная для того чтобы вставить это значение в текстовый файл(скрипт) вот его содержымое:
[more]
@Echo off
Echo ******* Building *******
FOR /F "tokens=3 delims=    " %%a IN ('reg query "HKCU\Software\Borland\Delphi\7.0\library" /v "Search Path"') DO set serchpath=%%a

if exist .cfg ren .cfg .cf~
if exist DCC32.cfg ren DCC32.cfg DCC32.cf~
rem # Make console target, unless overridden later
echo -$A8 >> DCC32.cfg
echo -$B- >> DCC32.cfg
echo -$C+ >> DCC32.cfg
echo -$D+ >> DCC32.cfg
echo -$E->> DCC32.cfg
echo -$F- >> DCC32.cfg
echo -$G+ >> DCC32.cfg
echo -$H+ >> DCC32.cfg
echo -$I+ >> DCC32.cfg
echo -$J- >> DCC32.cfg
echo -$K- >> DCC32.cfg
echo -$L+ >> DCC32.cfg
echo -$M- >> DCC32.cfg
echo -$N+ >> DCC32.cfg
echo -$O+ >> DCC32.cfg
echo -$P+ >> DCC32.cfg
echo -$Q- >> DCC32.cfg
echo -$R- >> DCC32.cfg
echo -$S- >> DCC32.cfg
echo -$T- >> DCC32.cfg
echo -$U- >> DCC32.cfg
echo -$V+ >> DCC32.cfg
echo -$W- >> DCC32.cfg
echo -$X+ >> DCC32.cfg
echo -$YD >> DCC32.cfg
echo -$Z1 >> DCC32.cfg
echo -GD >> DCC32.cfg
echo -cg >> DCC32.cfg
echo -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; >> DCC32.cfg
echo -H+ >> DCC32.cfg
echo -W+ >> DCC32.cfg
echo -M >> DCC32.cfg

rem # Min/MaxStackSize
echo -M16384,1048576 >> DCC32.cfg
rem # ImageBase
echo -K$00400000 >> DCC32.cfg

echo -LE"c:\program files\borland\delphi7\Projects\bpl" >> DCC32.cfg
echo -LN"c:\program files\borland\delphi7\Projects\Bpl" >> DCC32.cfg
echo -DEUREKALOG;EUREKALOG_VER6 >> DCC32.cfg
rem # Packages
echo -LUvcl;vclx >> DCC32.cfg
rem # SearchPath
echo -U"%serchpath%" >> DCC32.cfg
rem # SearchPath
echo -R"%serchpath%" >> DCC32.cfg
rem # SearchPath
echo -O"%serchpath%" >> DCC32.cfg
rem # SearchPath
echo -I"%serchpath%" >> DCC32.cfg
rem # BuildAll
echo -B >> DCC32.cfg


"c:\Program Files\Borland\Delphi7\Bin\DCC32.EXE" *.dpr %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 goto GotError
goto Finish

rem # Got an error. Wait for user input
:GotError
echo Error!
pause

:Finish
del DCC32.cfg
if exist DCC32.cf~ ren DCC32.cf~ DCC32.cfg
if exist .cf~ ren .cf~ .cfg
Echo ******* Done. *******

:End
[/more]
Автор: AHAKOHDA
Дата сообщения: 10.11.2008 17:50
Adramelek
Спасибо, помогло. А как написать в батнике типа:
"ЕСЛИ есть процесс "Camfrog Video Chat.exe" ТО убить его, а если нет то закрыть батник"?
А то у меня окно команд висит и не пропадает, если нет такого процесса.
Автор: Elroir
Дата сообщения: 10.11.2008 19:59
Kilyan
Сторонними утилитами пользоваться можно? Без gsar.exe (замена символов в тексте) у меня не получается.

AHAKOHDA

Код:
@echo off
tasklist | find /i "Camfrog Video Chat.exe">nul
if not errorlevel 1 taskkill /F /IM "Camfrog Video Chat.exe"
Автор: AHAKOHDA
Дата сообщения: 10.11.2008 23:23
Добавлено:
Elroir
ты золото! спасибо. слушай ты можешь скинуть ссылку на объяснение команд и ключей tasklist | find /i и errorlevel 1 ?
и еще вот что. я дописал строку последнюю:
"C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
получается как бы перезапуск, однако черное командное окно после такой строчки не исчезает и команда EXIT не помогает.
Автор: Elroir
Дата сообщения: 11.11.2008 01:32
AHAKOHDA

Цитата:
можешь скинуть ссылку на объяснение команд и ключей tasklist | find /i и errorlevel 1 ?

tasklist, find, errorlevel, | - тут и тут


Цитата:
я дописал строку последнюю:
"C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
получается как бы перезапуск, однако черное командное окно после такой строчки не исчезает и команда EXIT не помогает.


Код: start "" "C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
Автор: iamantbk
Дата сообщения: 11.11.2008 04:14
Как включить гостя?
Автор: vitrzn
Дата сообщения: 11.11.2008 07:47
Ув.
Цитата:
Elroir
что-же ВЫ молчали о таком сайте?
(http://www.windowsfaq.ru/content/category/3/7/45/ )

Очень рекомендую !
Многие вопросы снимутся сами
Автор: Kilyan
Дата сообщения: 11.11.2008 09:08
Elroir
Если дело выгорает при помощи сторонних утилит - не то что стоит а необходимо ими пользоваться - если у вас получилось разжевать мою задачу - не могли бы поделится своими трудами и вдохновить своими победами над моими проблемами!
Автор: Elroir
Дата сообщения: 11.11.2008 09:59
Kilyan
Получилось, но код я писал дома и там его и оставил. Вернусь с работы - выложу.
Автор: AHAKOHDA
Дата сообщения: 11.11.2008 14:33
vitrzn
а потому что Вы люди не такие практичные чтобы спросить как я. Не постеснялся знать во благо.
Спасибо Elroir !
Автор: Elroir
Дата сообщения: 11.11.2008 19:10
Kilyan
Вот, что получилось:
[more]

Код:
@echo off
del tmp?.txt 2>nul
rem ========================================================================================================
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
more +3 temp1.txt>temp2.txt
gsar -s; -r:013:010 -f temp2.txt temp1.txt >nul
gsar -s\\ -r\ -f temp1.txt temp2.txt >nul
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
set "tempVar1=%tempVar1:~15%"
echo %tempVar1%>temp1.txt
more +1 temp2.txt>>temp1.txt
set lines=0
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem ===========================================================================

Echo ******* Building *******

if exist .cfg ren .cfg .cf~
if exist DCC32.cfg ren DCC32.cfg DCC32.cf~
rem # Make console target, unless overridden later
echo -$A8 >> DCC32.cfg
echo -$B- >> DCC32.cfg
echo -$C+ >> DCC32.cfg
echo -$D+ >> DCC32.cfg
echo -$E->> DCC32.cfg
echo -$F- >> DCC32.cfg
echo -$G+ >> DCC32.cfg
echo -$H+ >> DCC32.cfg
echo -$I+ >> DCC32.cfg
echo -$J- >> DCC32.cfg
echo -$K- >> DCC32.cfg
echo -$L+ >> DCC32.cfg
echo -$M- >> DCC32.cfg
echo -$N+ >> DCC32.cfg
echo -$O+ >> DCC32.cfg
echo -$P+ >> DCC32.cfg
echo -$Q- >> DCC32.cfg
echo -$R- >> DCC32.cfg
echo -$S- >> DCC32.cfg
echo -$T- >> DCC32.cfg
echo -$U- >> DCC32.cfg
echo -$V+ >> DCC32.cfg
echo -$W- >> DCC32.cfg
echo -$X+ >> DCC32.cfg
echo -$YD >> DCC32.cfg
echo -$Z1 >> DCC32.cfg
echo -GD >> DCC32.cfg
echo -cg >> DCC32.cfg
echo -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; >> DCC32.cfg
echo -H+ >> DCC32.cfg
echo -W+ >> DCC32.cfg
echo -M >> DCC32.cfg

rem # Min/MaxStackSize
echo -M16384,1048576 >> DCC32.cfg
rem # ImageBase
echo -K$00400000 >> DCC32.cfg

echo -LE"c:\program files\borland\delphi7\Projects\bpl" >> DCC32.cfg
echo -LN"c:\program files\borland\delphi7\Projects\Bpl" >> DCC32.cfg
echo -DEUREKALOG;EUREKALOG_VER6 >> DCC32.cfg
rem # Packages
echo -LUvcl;vclx >> DCC32.cfg
rem # SearchPath
set /p=-U<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-R<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-O<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-I<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # BuildAll
echo -B >> DCC32.cfg


"c:\Program Files\Borland\Delphi7\Bin\DCC32.EXE" *.dpr %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 goto GotError
goto Finish

rem # Got an error. Wait for user input
:GotError
echo Error!
pause

:Finish
del DCC32.cfg
if exist DCC32.cf~ ren DCC32.cf~ DCC32.cfg
if exist .cf~ ren .cf~ .cfg
del temp?.txt 2>nul
Echo ******* Done. *******

:End
goto :EOF

:writeSearchPath
setlocal enabledelayedexpansion
set "count=1"
set /p=""<nul>>"%~1%"
for /f "tokens=*" %%a in (temp1.txt) do (
set "sp=%%a;"
if !count!==1 set "sp="""!sp!"
if !count!==!lines! set "sp=!sp:~0,-1!"
set /p=!sp!<nul>>"%~1%"
set /a count+=1
)

Автор: GTHack
Дата сообщения: 12.11.2008 10:43
Как выделить батником подстроку ?

нужно из вывода команды dir "выцепить" количество свободных байт

предпоследняя строка (допустим)
2 папок 20 893 331 456 байт свободно

хотелось бы на выходе иметь 20893331456


p.s.
вообще посоветуйте плс как можно на выходе получить свободное место на диске ? (а то если к диру завязываться - на англоязычных системах скрипт не отработает)

p.s.s. строчку то я выдернул, как вот теперь циферки из нее вытащить ?

@echo off
for /f "tokens=*" %%a in ('dir ^| findstr папок') do (
echo %%a
)
pause
Автор: Kilyan
Дата сообщения: 12.11.2008 11:23
Elroir
Говорит что слишком много аргументов в коммандной строке
[more]
@echo off
del tmp?.txt 2>nul
rem ========================================================================================================
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
more +3 temp1.txt>temp2.txt
gsar -s; -r:013:010 -f temp2.txt temp1.txt >nul
gsar -s\\ -r\ -f temp1.txt temp2.txt >nul
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
set "tempVar1=%tempVar1:~15%"
echo %tempVar1%>temp1.txt
more +1 temp2.txt>>temp1.txt
set lines=0
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem ===========================================================================

[/more]
Автор: GTHack
Дата сообщения: 12.11.2008 12:40
@echo off
for /f "tokens=3" %%b in ('dir ^| findstr папок') do echo %%b
pause

выдергивает
20 853 465 088 !!!

почему то не пробелы между цифрами не считаются разделителями
но и полученный результат нельзя сравнивать с цифрой

теперь осталось из строчки "20 853 465 088" получить число 20853465088


Добавлено:
блин не пойму как for_ом можн перебрать все подстроки одной строки
Автор: Elroir
Дата сообщения: 12.11.2008 13:24
Kilyan

Цитата:
Говорит что слишком много аргументов в коммандной строке

Убери из первой строчки "@echo off" и посмотри какaя команда дает такое сообщение.
Автор: GTHack
Дата сообщения: 12.11.2008 13:24
а код символа то 255 в пробелах между цифрами !!!
Автор: Kilyan
Дата сообщения: 12.11.2008 13:33
Elroir
на more +3 temp1.txt>temp2.txt

з.ы. если вам не в тягость будет- закоментируйте описание к действиям(вашим), а то все что я пытался в Батнике еще понимал,а то что вы - увы уже голова трещит! никак не разберусь (но это только если не в тягость)
Автор: Elroir
Дата сообщения: 13.11.2008 01:55
Kilyan
1. Пробуем заменить "more +3 temp1.txt>temp2.txt" на "more +3 < temp1.txt > temp2.txt"
2. [more]

Код:
@echo off
del tmp?.txt 2>nul
rem ========================================================================================================
rem Вытаскиваем информацию из реестра, с помощью программы regedit, в файл temp1.txt
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
rem Первые 3 строчки нам не нужны, поэтому переписываем содержимое temp1.txt в temp2.txt, пропустив эти строчки
more +3 temp1.txt>temp2.txt
rem Теперь у нас есть одна длинная строка, которую нам надо разбить на кусочки.
rem Для этого - заменяем все символы ";", которые отделяют разные пути, на два
rem символа: "возврат каретки" и "новая строка" (в Windows именно так указывается
rem переход на новую строку).

gsar -s; -r:013:010 -f temp2.txt temp1.txt >nul
rem В файле temp2.txt все символы "\" удвоены - заменяем их на единичные.
gsar -s\\ -r\ -f temp1.txt temp2.txt >nul
rem Находим первую строчку и заносим ее в переменную tempVar1
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
rem Вырезаем из переменной первые 15 символов ("Search Path"=") - они нам не нужны
set "tempVar1=%tempVar1:~15%"
rem Записываем первую строчку из переменной tempVar1 в файл temp1.txt
echo %tempVar1%>temp1.txt
rem Переписываем все, кроме первой строки из temp2.txt в temp1.txt
more +1 temp2.txt>>temp1.txt
rem В переменной lines будет общее число строк в temp1.txt
set "lines=0"
rem Подсчитываем число строк
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem Теперь у нас есть все, что нам надо для дальнейшей работы
rem ===========================================================================

Echo ******* Building *******

if exist .cfg ren .cfg .cf~
if exist DCC32.cfg ren DCC32.cfg DCC32.cf~
rem # Make console target, unless overridden later
echo -$A8 >> DCC32.cfg
echo -$B- >> DCC32.cfg
echo -$C+ >> DCC32.cfg
echo -$D+ >> DCC32.cfg
echo -$E->> DCC32.cfg
echo -$F- >> DCC32.cfg
echo -$G+ >> DCC32.cfg
echo -$H+ >> DCC32.cfg
echo -$I+ >> DCC32.cfg
echo -$J- >> DCC32.cfg
echo -$K- >> DCC32.cfg
echo -$L+ >> DCC32.cfg
echo -$M- >> DCC32.cfg
echo -$N+ >> DCC32.cfg
echo -$O+ >> DCC32.cfg
echo -$P+ >> DCC32.cfg
echo -$Q- >> DCC32.cfg
echo -$R- >> DCC32.cfg
echo -$S- >> DCC32.cfg
echo -$T- >> DCC32.cfg
echo -$U- >> DCC32.cfg
echo -$V+ >> DCC32.cfg
echo -$W- >> DCC32.cfg
echo -$X+ >> DCC32.cfg
echo -$YD >> DCC32.cfg
echo -$Z1 >> DCC32.cfg
echo -GD >> DCC32.cfg
echo -cg >> DCC32.cfg
echo -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; >> DCC32.cfg
echo -H+ >> DCC32.cfg
echo -W+ >> DCC32.cfg
echo -M >> DCC32.cfg

rem # Min/MaxStackSize
echo -M16384,1048576 >> DCC32.cfg
rem # ImageBase
echo -K$00400000 >> DCC32.cfg

echo -LE"c:\program files\borland\delphi7\Projects\bpl" >> DCC32.cfg
echo -LN"c:\program files\borland\delphi7\Projects\Bpl" >> DCC32.cfg
echo -DEUREKALOG;EUREKALOG_VER6 >> DCC32.cfg
rem # Packages
echo -LUvcl;vclx >> DCC32.cfg
rem # SearchPath
rem Записываем "-U" в файл DCC32.cfg без перевода строки - то есть следующая запись
rem будет производится на этой же строке, без каких-либо пробелов.
rem Использование этой конструкции, в официальных источниках не описано.

set /p=-U<nul>>DCC32.cfg
rem Вызываем блок записи всего пути в файл DCC32.cfg, одной строкой
call :writeSearchPath DCC32.cfg
rem Переходом на следующую строку в файле DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-R<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-O<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # SearchPath
set /p=-I<nul>>DCC32.cfg
call :writeSearchPath DCC32.cfg
echo.>>DCC32.cfg
rem # BuildAll
echo -B >> DCC32.cfg


"c:\Program Files\Borland\Delphi7\Bin\DCC32.EXE" *.dpr %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 goto GotError
goto Finish

rem # Got an error. Wait for user input
:GotError
echo Error!
pause

:Finish
del DCC32.cfg
if exist DCC32.cf~ ren DCC32.cf~ DCC32.cfg
if exist .cf~ ren .cf~ .cfg
del temp?.txt 2>nul
Echo ******* Done. *******

:End
goto :EOF

:writeSearchPath
rem Включаем отложенное раскрытие заначения переменных
setlocal enabledelayedexpansion
set "count=1"
rem Хм... не помню, почему я ввел эту строчку :-)
set /p=""<nul>>"%~1%"
rem Идем по всем строчкам из файла temp1.txt и записываем их в DCC32.cfg через
rem знак ";" - все на одной строке

for /f "tokens=*" %%a in (temp1.txt) do (
rem Добавляем ";" в конез строки и вносим ее (строку) в переменную sp)
set "sp=%%a;"
rem Если это первая строчка - добавляем кавычку первым символом
if !count!==1 set "sp="""!sp!"
rem Если последняя строка - убираем ";" в конце
if !count!==!lines! set "sp=!sp:~0,-1!"
rem Пишем строку в файл
set /p=!sp!<nul>>"%~1%"
rem Увеличиваем счетчик строк, чтобы поймать последнюю строку
set /a count+=1
)

Автор: Kilyan
Дата сообщения: 13.11.2008 09:03
Elroir

Цитата:
1. Пробуем заменить "more +3 temp1.txt>temp2.txt" на "more +3 < temp1.txt > temp2.txt"

тоже самое - слишком много аргументов в ком.строке
......
а за описание - отдельное спасибо.
Автор: Elroir
Дата сообщения: 13.11.2008 15:12
Kilyan

Цитата:
тоже самое - слишком много аргументов в ком.строке

Фантастика какая-то!
Ладно, пробуем так:

Код: more /E +3 temp1.txt > temp2.txt
Автор: Kilyan
Дата сообщения: 13.11.2008 16:00
а вот так заработало!!!

Но есть еще одна проблемка - в реестре есть не только ветка Search Path , а после нее есть еще несколько... Видимо они тоже попадают в обработку и вся конструкция валится!
Вот эта ветка имеет HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library

имеет такие ключи:
Browsing Path
Debug DCU Path
Namespace Search Path
Package DCP Output
Package DPL Output
Package Search Path
Search Path


Причем експорт в файл имеет не такую сортировку - а вот какую:
[more]
REGEDIT4

[HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library]
"Browsing Path"="$(DELPHI)\\source\\vcl;$(DELPHI)\\Source\\Rtl;$(DELPHI)\\source\\rtl\\Corba45;$(DELPHI)\\source\\rtl\\Sys;$(DELPHI)\\source\\rtl\\Win;$(DELPHI)\\source\\rtl\\common;$(DELPHI)\\source\\Internet;$(DELPHI)\\source\\clx;$(DELPHI)\\source\\websnap;$(DELPHI)\\Source\\WebMidas;$(DELPHI)\\Source\\Indy;$(DELPHI)\\Source\\IntraWeb;$(DELPHI)\\Source\\Samples;$(DELPHI)\\Source\\Soap;$(DELPHI)\\Source\\ToolsAPI;$(DELPHI)\\Source\\Xml;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\TeeTree;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\Sources"
"Search Path"="C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Utils\\EurekaLog 6\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ComponentAce\\AbsoluteDatabase\\Lib\\Delphi 7;$(DELPHI)\\Lib;$(DELPHI)\\Bin;$(DELPHI)\\Imports;$(DELPHI)\\Projects\\Bpl;$(DELPHI)\\Rave5\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Accuracer\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\AlphaSkins;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\AlphaSkins\\AlphaDB;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ComponentAce\\AbsoluteDatabase\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ComponentAce\\FlexCompress\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ComponentAce\\ZipForge\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Crypto\\Crypto\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PngComponents\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\pngimage;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\RX\\Units;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\VCLSkin\\source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\VCLZIP\\source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ZipTV07;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\ElasticForm;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\AboutVersion;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\autorunner;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\Beeper;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\blink_component\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\BMDelphiThread;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\CodePage;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\CoolTrayIcon;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\DBF;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\DropFile;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\EasysizeForm;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\executefile;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\FileStorage;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\Gradient;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\GruCredits;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\HotLog;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\LabelURL;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\Lines;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\magdskfmt10;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\mail2000;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\FastReport 4\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Component Pack;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TsiLang\\Units;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TsiLang\\Units\\Auxilary;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\AsciiDataset\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MX\\mxOneInstance\\Component;c:\\program files\\borland\\delphi7\\mycomponents\\storage\\delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Storage\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\xqsource;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\xqsource\\QBUILDER;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PaxCompiler2;C:\\Program Files\\Borland\\Delphi7\\Source\\Indy;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Scripter Studio Pro;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Scripter Studio Pro\\imports\\delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Scripter Studio Pro\\designer;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\FastReport 4\\Pack\\frxVCLZip;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Almediadev\\DynamicSkinForm\\dsfsb\\components;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Almediadev\\DynamicSkinForm;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS.GUIMotion;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ShellBrowser Components\\Delphi7\\lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ShellBrowser Components\\TNT\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\ShellBrowser Components\\TNT\\Design;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Security System;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\IbDac\\Demos\\ThirdParty\\FastReport\\FR4\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\IbDac\\Demos\\ThirdParty\\FastReport\\FR4;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\MyDac\\Demos\\ThirdParty\\FastReport\\FR4;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\MyDac\\Demos\\ThirdParty\\FastReport\\FR4\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Odac\\Demos\\ThirdParty\\FastReport\\FR4\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Odac\\Demos\\ThirdParty\\FastReport\\FR4;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Sdac\\Demos\\ThirdParty\\FastReport\\FR4;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Sdac\\Demos\\ThirdParty\\FastReport\\FR4\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Easy_Compression_Library_3.10;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\RegType;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MX\\mxnativeexcel\\COMPONENT;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\XLSReadWriteII30\\Src;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\AlphaSkins\\Other;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PaxCompiler2\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MX\\mxPluginLoader\\COMPONENT;c:\\program files\\borland\\delphi7\\mycomponents\\mycomponent\\logindialog;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\EzVirtualDataset\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\dclldr;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\TeeTree\\Compiled\\Delphi7\\Lib;c:\\program files\\borland\\delphi7\\mycomponents\\mycomponent\\picshow;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMSInstrumentationWorkshop;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\XLSSuit\\Package\\D7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\Sources\\Compiled\\Delphi7\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PngComponents\\Delphi;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PngComponents\\Design;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PngComponents\\Include;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\MyDac\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\MyDac\\Bin;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Sdac\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Sdac\\Bin;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Odac\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\Odac\\Bin;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\IbDac\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\CoreLab\\IbDac\\Bin;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\PaxCompiler2\\Import;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\RC5\\Lib\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TMS Advanced Charts;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\Sources;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\delphiarea;C:\\Program Files\\Borland\\Delphi7\\Source\\ToolsAPI;C:\\Program Files\\Borland\\Delphi7\\Source\\Vcl;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\LogonDlg;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\EMS Advanced Data Export\\Source;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\EasyTable.v6.30;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\FastReport 4\\LibD7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\FastReport 4\\Pack\\frxAddFunction;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\FastReport 4\\Pack\\frxAdvPicture;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\CollapsePanel;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\ehlibrus\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\IPWorks V8 Delphi Edition\\pas;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\Utils\\CS4\\Lib\\Delphi7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\XLSReadWriteII30\\Package\\D7;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MX\\mxWebUpdate\\COMPONENT;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\MyComponent\\ehs"
"Package DCP Output"="$(DELPHI)\\Projects\\Bpl"
"Package DPL Output"="$(DELPHI)\\Projects\\Bpl"
"Debug DCU Path"="C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\TeeTree\\Compiled\\Delphi7\\Lib;C:\\Program Files\\Borland\\Delphi7\\MyComponents\\TeeChart\\Sources\\Compiled\\Delphi7\\Lib"
"Package Search Path"=""
"Namespace Search Path"=""
[/more]

и впеременную попадает ("ch Path")

Используется WinXPSP3

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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