Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перенос строки в cmd "for in () do @( )"

Ответить
Настройки темы
CMD/BAT - [решено] Перенос строки в cmd "for in () do @( )"

Старожил


Сообщения: 267
Благодарности: 8

Профиль | Отправить PM | Цитировать


Изменения
Автор: shadowbat
Дата: 16-12-2019
Есть однострочный код
Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call rename "%%i" "%%~ni1.txt" & call echo 1)"
pause
Как внедрить туда перенос строки, чтобы получилось что-то подобное?
Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call rename "%%i" "%%~ni1.txt" & ^
call echo 1)"
pause
Если нельзя, то просто напишите что нельзя

Отправлено: 13:39, 16-12-2019

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


shadowbat, я не могу только понять зачем там call
Цитата shadowbat:
внедрить туда перенос строки »
в общем случае так:
Код: Выделить весь код
@echo off
cmd /v/c "for %%a in (x) do set "z=%%a^"^&^
echo !z!"
pause
не зная вашей задачи определенно нельзя сказать как именно у вас будет, надо или экспериментировать или еще раз, точно знать задачу, кстати более чем уверен что cmd /v/c можно обойти и не будет проблемы однострочника.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:38, 16-12-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 267
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата alpap:
^&^ »
без кавычек работает
Код: Выделить весь код
cmd /v/c for %%i in ("%CD%\*.txt") do @(call rename "%%i" "%%~ni1.txt" ^&^
call echo 1)
pause
но в первом сообщении есть кавычки и с ними не работает
Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call rename "%%i" "%%~ni1.txt" ^&^
call echo 1)"
pause
как и этот вариант, не работает без кавычек и не работает с ^&^
Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(set "E=%%~xi" ^&^
call echo "%%~ni_%%E:~1%%")"
pause

Отправлено: 16:02, 16-12-2019 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


shadowbat, невнимательно смотрели мой пример:
Код: Выделить весь код
@echo off
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call rename "%%i" "%%~ni1.txt^"^&^
call echo 1)"
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:14, 16-12-2019 | #4


Старожил


Сообщения: 267
Благодарности: 8

Профиль | Отправить PM | Цитировать


alpap, прекрасно, всё работает после добавление третьей ^

Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call echo 1^"^&^
call rename "%%i" "%%~ni1.txt")"
pause
в таком коде результат выводится такой
Код: Выделить весь код
1"
1"
1"
как перенести без кавычки? или перед переносом всегда должна стоять кавычка (^"^&^)?
пока временное решение - пустое echo как невидимый оператор переноса строки:
Код: Выделить весь код
 & call @echo^"^&^
Код: Выделить весь код
cmd /v/c "for %%i in ("%CD%\*.txt") do @(call echo 1 & call @echo^"^&^
call rename "%%i" "%%~ni1.txt")"
pause

Последний раз редактировалось shadowbat, 16-12-2019 в 17:58.


Отправлено: 17:34, 16-12-2019 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


shadowbat, смысла не догнали? Все просто:
(простыми словами, последняя парная кавычка текущей строки хочет быть собственностью окончания функции команд cmd, а наша задача сделать это не так)
Код: Выделить весь код
@echo off
cmd /v/c "for %%i in ("%CD%\*.txt^") do @(call echo 1^&^
call rename "%%i" "%%~ni1.txt")"
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:35, 16-12-2019 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перенос строки в cmd "for in () do @( )"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются angel_lyucifer Скриптовые языки администрирования Windows 37 27-05-2019 17:45
2010 - [решено] Как удалить все строки в Word 2010 по результатам работы "Поиск" и "Заменить"? flev45 Microsoft Office (Word, Excel, Outlook и т.д.) 30 16-05-2019 20:42
[решено] Как удалить содержимое папок "Моя Музыка" и "Мои Рисунки" через CMD Ivan_009 Автоматическая установка Windows 2000/XP/2003 10 14-01-2013 20:45
Перенос профилей пользователей диска "с" на диск "d" svetl6 Microsoft Windows NT/2000/2003 3 15-07-2010 18:25




 
Переход