Можно ли использовать конвейер (|) в скобках команды for?
		
		» Задачи на bat-файлах 6
koderr 
 
Цитата:
Можно, используй escape-символ перед конвеером ^|
  
Добавлено:
Serhiy123
Попробуй так:
 
Код:
@Echo Off
  
for /R %%J in (.) do (
echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
)
  
:Founded
set NAMEOFDIR=%1
set NAMEOFDIR=%NAMEOFDIR:~3,-8%
echo %NAMEOFDIR%
ren %NAMEOFDIR% AUTORUN.INF
Exit /B
  
		
		Цитата:
Можно ли использовать конвейер (|) в скобках команды for?
Можно, используй escape-символ перед конвеером ^|
Добавлено:
Serhiy123
Попробуй так:
Код:
@Echo Off
for /R %%J in (.) do (
echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
)
:Founded
set NAMEOFDIR=%1
set NAMEOFDIR=%NAMEOFDIR:~3,-8%
echo %NAMEOFDIR%
ren %NAMEOFDIR% AUTORUN.INF
Exit /B
Maza_Faka 
 
Цитата:
  
Я немного непонимал код, ponand обьяснил мне.
Ребята, меня всё устраивает
, даже очень.  
Большое спасибо.
		
		Цитата:
Вопрос звучал так:
Цитата:
Надо создать новую папку, и в неё перенести все эти файлы по папкам , которые будут называться (папки) 1, 2, 3 , ... , числами в порядке возростания.
Что конкретно не устраивает?
Я немного непонимал код, ponand обьяснил мне.
Ребята, меня всё устраивает
, даже очень.  Большое спасибо.
Maza_Faka 
  
Спасибо - интересная идея с
  
 
Код:
@Echo Off
   
for /R %%J in (.) do (
echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
)
   
:Founded
set NAMEOFDIR=%1
set NAMEOFDIR=%NAMEOFDIR:~3,-8%
echo %NAMEOFDIR%
ren %NAMEOFDIR% AUTORUN.INF
Exit /B
  
		
		Спасибо - интересная идея с
Код:
@Echo Off
for /R %%J in (.) do (
echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
)
:Founded
set NAMEOFDIR=%1
set NAMEOFDIR=%NAMEOFDIR:~3,-8%
echo %NAMEOFDIR%
ren %NAMEOFDIR% AUTORUN.INF
Exit /B
Здравствуйте мозги Ru.Board! 
  
Порылся я в этой теме и не нашол ответ на мой вопрос, может потомучто плохо искал или потомучто в ЭТОЙ ТЕМЕ 6 ЧАСТЕЙ
 
  
А вопрос у меня такой: я передаю в БАТ файл полный адресс к другому файлу и хочу с помощью БАТ выдернуть из этого пути толко нужную мне инфу, к примеру полный путь выглядит так : D:\Programmierung\JAVA\test\HalloTester.java
вот из него то мне и нужно выдернуть последнюю директорию, в данном случае test
и имя файла но без расширения, в данном случае HalloTester
  
Помогите мне пожалуйста, срочно надо а помощи больше не откуда получить кроме как Ru.Board так как google тут совсем не рулит
 
  
Спасибо за рание!!!
		
		Порылся я в этой теме и не нашол ответ на мой вопрос, может потомучто плохо искал или потомучто в ЭТОЙ ТЕМЕ 6 ЧАСТЕЙ
 А вопрос у меня такой: я передаю в БАТ файл полный адресс к другому файлу и хочу с помощью БАТ выдернуть из этого пути толко нужную мне инфу, к примеру полный путь выглядит так : D:\Programmierung\JAVA\test\HalloTester.java
вот из него то мне и нужно выдернуть последнюю директорию, в данном случае test
и имя файла но без расширения, в данном случае HalloTester
Помогите мне пожалуйста, срочно надо а помощи больше не откуда получить кроме как Ru.Board так как google тут совсем не рулит
 Спасибо за рание!!!
AleksejTokarev 
 
Код: for %%e in (D:\Programmierung\JAVA\test\HalloTester.java) do (
echo %%~ne
cd /d %%~dpe
)
for %%f in (%cd%) do echo %%~nf
pause
		
		Код: for %%e in (D:\Programmierung\JAVA\test\HalloTester.java) do (
echo %%~ne
cd /d %%~dpe
)
for %%f in (%cd%) do echo %%~nf
pause
king_stiven 
  
Вы немогли бы мне объеснит принцип работы этого кода, как он это отделил???
		
		Вы немогли бы мне объеснит принцип работы этого кода, как он это отделил???
king_stiven 
 
Код: for %%e in (D:\Programmierung\JAVA\test\HalloTester.java) do (
echo %%~ne
cd /d %%~dpe
)
		
		Код: for %%e in (D:\Programmierung\JAVA\test\HalloTester.java) do (
echo %%~ne
cd /d %%~dpe
)
19w85 
 
Цитата:
Без этой конструкции, переменная %cd% вернет тебе совершенно другую директорию
		
		Цитата:
А зачем такая сложная конструкция для выделения одного имени файла без расширения из передаваемого полного пути?
Без этой конструкции, переменная %cd% вернет тебе совершенно другую директорию
Elroir 
 
Цитата:
Ага, я это заметил почти сразу, когда начал батник тестировать
Все равно, так короче и понятнее, чем у king_stiven
 
Код: cd /d "%~dp1"
%~n1
  
		
		Цитата:
Без этой конструкции, переменная %cd% вернет тебе совершенно другую директорию
Ага, я это заметил почти сразу, когда начал батник тестировать
Все равно, так короче и понятнее, чем у king_stiven
Код: cd /d "%~dp1"
%~n1
19w85 
 
Код:
for %%f in (%cd%) do set "x=%%~nf"
  
		
		Код:
for %%f in (%cd%) do set "x=%%~nf"
Serhiy123 
 
Цитата:
Попробуй так:
 
Код:
@Echo Off
  
for /R %%J in (.) do echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
GoTo :EOF
  
:Founded
Set "DirName=%~n1"
Set "Path=%~dp1"
  
CD /D "%Path%"
Ren "%DirName%" AUTORUN.INF
GoTo :EOF
  
		
		Цитата:
Но сам ren теперь не работает:
Попробуй так:
Код:
@Echo Off
for /R %%J in (.) do echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
GoTo :EOF
:Founded
Set "DirName=%~n1"
Set "Path=%~dp1"
CD /D "%Path%"
Ren "%DirName%" AUTORUN.INF
GoTo :EOF
king_stiven 
спасибо за предложение. Действительно XXCopy показывает прогресс бар, и вообще, неплохая утилита. Есть небольшая "заковыка", не позволяющая мне ее применить - бесплатная версия полнофункциональна только при копировании файлов ВНУТРИ компьютера. Для "общения" с сетевыми дисками требуется дополнительное нажатие клавиши, которое и продолжит ее работу (если ничего не нажать, через 2 мин. утилита прекращает работу). Купите, говорит, PRO версию, и никаких вопросов...
   
Исходя из этого, повторю свой вопрос: мой батник копирует файл. Как визуализировать процесс его копирования (~100Mb и размер будет расти), что бы пользователь не заподозрил зависание машины и не начал "дергаться".
Есть ли rundll решение, или вызов WINAPI из под VBS или JavaScript? На "худой конец", пусть палочка вертится в углу экрана,
, как когда-то в начале 90-х
		
		спасибо за предложение. Действительно XXCopy показывает прогресс бар, и вообще, неплохая утилита. Есть небольшая "заковыка", не позволяющая мне ее применить - бесплатная версия полнофункциональна только при копировании файлов ВНУТРИ компьютера. Для "общения" с сетевыми дисками требуется дополнительное нажатие клавиши, которое и продолжит ее работу (если ничего не нажать, через 2 мин. утилита прекращает работу). Купите, говорит, PRO версию, и никаких вопросов...
   Исходя из этого, повторю свой вопрос: мой батник копирует файл. Как визуализировать процесс его копирования (~100Mb и размер будет расти), что бы пользователь не заподозрил зависание машины и не начал "дергаться".
Есть ли rundll решение, или вызов WINAPI из под VBS или JavaScript? На "худой конец", пусть палочка вертится в углу экрана,
, как когда-то в начале 90-хДоброе время суток, помогите пожалуйста, задача запустить файл из расшаренной директории с правами определенной учетки: 
  
\\directory\kidokiller.exe user:administrator password:123123123
  
  
Как то так... помогите плиз составить как положено.
Заранее спасибо
		
		\\directory\kidokiller.exe user:administrator password:123123123
Как то так... помогите плиз составить как положено.
Заранее спасибо
Elroir 
Спасибо!
 
Столько времени ломал голову в попытках избавиться от промежуточного файла, но знаний так и не хватило это сделать
 
 
		
		Спасибо!
 Столько времени ломал голову в попытках избавиться от промежуточного файла, но знаний так и не хватило это сделать
 Ilyansk 
Ну robocopy возьми. Бесплатная. У нее процентный индикатор копирования, циферки меняются.
 
		
		Ну robocopy возьми. Бесплатная. У нее процентный индикатор копирования, циферки меняются.
satysaty 
Runas /?
		
		Runas /?
Maza_Faka 
  
На практике конструкция упростилась до
  
 
Код:
for /R %%J in (.) do echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
   
:Founded
Set Path=%~dp1
Ren %Path% AUTORUN.INF
  
		
		На практике конструкция упростилась до
Код:
for /R %%J in (.) do echo %%J | find /i "LPT3">Nul && Call :Founded "%%J"
:Founded
Set Path=%~dp1
Ren %Path% AUTORUN.INF
такой вот вопрос, из первого (инсталлятора) bat файла, где запрашивается диск (с,d), на котором есть каталог куда все копировать, 
echo Please enter your disk letter where soft has been installed:
set /p "ans=Enter your letter: "
  
echo processing...moving...
move /y .\Firmware\*.* "%ans%:\Program Files\Firmware" > nul
md "%ans%:\Program Files\files" > nul
move /y .\Firmware\files\*.* "%ans%:\Program Files\Firmware\files" > nul
  
echo Done...starting menu...
start cmd /c "%ans%:\Program Files\Firmware\updater.bat"
exit
  
в конце запрашиваю запуск второго (исполняемого с меню и выбором)
  
файл вызывается, но после выбора в меню не выполняются команды (пути до файлов относительные),а если запустить напрямую второй файл, то все нормально.
Что не так?
		
		echo Please enter your disk letter where soft has been installed:
set /p "ans=Enter your letter: "
echo processing...moving...
move /y .\Firmware\*.* "%ans%:\Program Files\Firmware" > nul
md "%ans%:\Program Files\files" > nul
move /y .\Firmware\files\*.* "%ans%:\Program Files\Firmware\files" > nul
echo Done...starting menu...
start cmd /c "%ans%:\Program Files\Firmware\updater.bat"
exit
в конце запрашиваю запуск второго (исполняемого с меню и выбором)
файл вызывается, но после выбора в меню не выполняются команды (пути до файлов относительные),а если запустить напрямую второй файл, то все нормально.
Что не так?
magistrfet 
Запусти батник, скопируй его и выложи здесь, укажи место где ошибка и что надо.
		
		Запусти батник, скопируй его и выложи здесь, укажи место где ошибка и что надо.
Serhiy123 
 
Цитата:
Ничего она не "держит", я проверял. Возможно дело в нестандартном названии каталога? Кстати, как ты его создаёшь, у меня не получается.
		
		Цитата:
именно команда for "держит" каталог
Ничего она не "держит", я проверял. Возможно дело в нестандартном названии каталога? Кстати, как ты его создаёшь, у меня не получается.
Maza_Faka 
Вопрос конечно может глупый но как мне прописать в батнике что необходимо... извините я в теме недавно =(
  
 
		
		Вопрос конечно может глупый но как мне прописать в батнике что необходимо... извините я в теме недавно =(
упс - ошибся... 
  
Добавлено: - чтоб мессага не пропадала :)
magistrfet
перед запуском последнего скрипта перейди в его каталог через CD /D "путь по которому переходим"
		
		Добавлено: - чтоб мессага не пропадала :)
magistrfet
перед запуском последнего скрипта перейди в его каталог через CD /D "путь по которому переходим"
king_stiven 
ошибки батника не посмотреть, т к он вызван другим батником, я так думаю, что при вызове второго батника в нем не понимаются относительные пути. Такое может быть? а при прямом его запуске (второго баника) файлы, с коротыми он работает относительно - понимаются.
		
		ошибки батника не посмотреть, т к он вызван другим батником, я так думаю, что при вызове второго батника в нем не понимаются относительные пути. Такое может быть? а при прямом его запуске (второго баника) файлы, с коротыми он работает относительно - понимаются.
Maza_Faka 
  
Я проверял с помощью Unlocker - при выполнении этого кода Unlocker показывает что каталог , содержащий искомый подкаталог LPT3 (с моем случае D:\AUTORUN.INF_) занят cmd.exe
  
Каталог с "неправильным именем" создается следующей конструкцией:
 
Код:
mkdir "\\?\D:\AUTORUN.INF\LPT3"
  
		
		Я проверял с помощью Unlocker - при выполнении этого кода Unlocker показывает что каталог , содержащий искомый подкаталог LPT3 (с моем случае D:\AUTORUN.INF_) занят cmd.exe
Каталог с "неправильным именем" создается следующей конструкцией:
Код:
mkdir "\\?\D:\AUTORUN.INF\LPT3"
magistrfet 
И всё таки запусти батник, если в начале батника есть команда
@echo off
убери её, чтоб батник не закрылся вставь в конец команду pause
откроется чёрное окошечко, пойдёт батник, потом правой мышкой "выделить всё" потом на заголовке батника "копировать" и присылай сюда всё или ту часть , где вероятней проблемы есть. Поверь, сэкономишь себе и другим пару суток. Или жди гуру типа Elroir или Игорь Андреев. Посмотри вариант yurkesha выше.
  
  
Добавлено:
Serhiy123
 
Код: @Echo Off
for /f "tokens=*" %%J in ('dir /b /s /a:d') do (
set NAMEOFDIR=%%J
echo %%J | find /i "LPT3">Nul && Call :Founded
)
GoTo :EOF
:Founded
ren %NAMEOFDIR:~3,-5% AUTORUN.INF
		
		И всё таки запусти батник, если в начале батника есть команда
@echo off
убери её, чтоб батник не закрылся вставь в конец команду pause
откроется чёрное окошечко, пойдёт батник, потом правой мышкой "выделить всё" потом на заголовке батника "копировать" и присылай сюда всё или ту часть , где вероятней проблемы есть. Поверь, сэкономишь себе и другим пару суток. Или жди гуру типа Elroir или Игорь Андреев. Посмотри вариант yurkesha выше.
Добавлено:
Serhiy123
Код: @Echo Off
for /f "tokens=*" %%J in ('dir /b /s /a:d') do (
set NAMEOFDIR=%%J
echo %%J | find /i "LPT3">Nul && Call :Founded
)
GoTo :EOF
:Founded
ren %NAMEOFDIR:~3,-5% AUTORUN.INF
Будте добры подскажите как сделать вывод сообщения  
 
Код: Echo %1
		
		Код: Echo %1
king_stiven - супер! Спасибо большое - работают оба варианта. 
  
Я только заменил Call на безусловный переход Goto, чтобы цикл не докручивался до конца после нахождения LPT3. Окончательный вариант выглядит так:
 
Код:
for /f "tokens=*" %%J in ('dir /b /s /a:d') do (
set NAMEOFDIR=%%J
echo %%J | find /i "LPT3">Nul && Goto :Founded
)
  
:Founded
ren %NAMEOFDIR:~3,-5% AUTORUN.INF
  
		
		Я только заменил Call на безусловный переход Goto, чтобы цикл не докручивался до конца после нахождения LPT3. Окончательный вариант выглядит так:
Код:
for /f "tokens=*" %%J in ('dir /b /s /a:d') do (
set NAMEOFDIR=%%J
echo %%J | find /i "LPT3">Nul && Goto :Founded
)
:Founded
ren %NAMEOFDIR:~3,-5% AUTORUN.INF
K_AHTOH 
 
Код:
echo %~dpn1.txt
  
		
		Код:
echo %~dpn1.txt
А как запустить CMD с заданными параметрами окна? (кол-во строк, колонок, цвета) ведь винда где-то это помнит... 
		
		Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: как сохранить сетевые настройки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.
