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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как сделать echo %%~nx

Ответить
Настройки темы
CMD/BAT - [решено] как сделать echo %%~nx

Старожил


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

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


Изменения
Автор: shadowbat
Дата: 23-03-2019
Как сделать, чтобы в консоль вывелась переменная, не её значение, а код переменной, текст "%%~nx":
в таком виде:
Цитата:
rem %%~nx
echo %%~nx
set var = file

Код: Выделить весь код
pushd "C:\111"
for /f "delims=" %%x in ('dir /b/s/a-d "*.txt"') do (
rem %%~nx
echo %%~nx
set var = %%~nx
)
popd
pause

Отправлено: 11:41, 23-03-2019

 

Ветеран


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

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


shadowbat, так?
Код: Выделить весь код
pushd "C:\111"
for /f "delims=" %%x in ('dir /b/s/a-d "*.txt"') do (
rem %%~nx
echo %%~nx
set var = %%~nx
echo var=!var!
)
popd
pause

Отправлено: 11:52, 23-03-2019 | #2



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

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


Старожил


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

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


Цитата sov44:
так? »
нужно в этих строчках что-то изменить
Код: Выделить весь код
rem %%~nx
echo %%~nx
что-то типа этого
Код: Выделить весь код
rem ^%^%^~nx
echo ^%^%^~nx

Последний раз редактировалось shadowbat, 23-03-2019 в 12:15.


Отправлено: 12:08, 23-03-2019 | #3


Ветеран


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

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


Цитата shadowbat:
в консоль вывелась переменная »
Э… Имя переменной окружения?

Отправлено: 12:41, 23-03-2019 | #4


Ветеран


Contributor


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

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


shadowbat, Что такое
Цитата shadowbat:
переменная, не её значение, а код переменной »
Нарисуйте ручками, приведите пример, что Вы хотите видеть на консоли?
Если на консоли Вы хотите видеть именно "%%~nx" то вне цикла (нет смысла в этом действии внутри цикла)
Код: Выделить весь код
@Echo Off
cls
	Set "Var=%%%%~nx"
	Echo "%Var%"
pause
Если хотите в цикле всё-таки видеть значение
Код: Выделить весь код
@Echo Off
cls
	Set "Var=%%%%~nx"

	for /f "delims=" %%x in ('dir /b/s/a-d "*.txt"') do (
		Call Echo %%Var%%=%%~nx
	)
pause
Или, для экзотичности, в цикле
Код: Выделить весь код
		Call Echo %%Var%%=%Var%

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 23-03-2019 в 12:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 23-03-2019 | #5


Старожил


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

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


Цитата megaloman:
Если на консоли Вы хотите видеть именно "%%~nx" (нет смысла в этом действии внутри цикла)
Нарисуйте ручками, приведите пример, что Вы хотите видеть на консоли?»
Именно, хочу видеть текст "%%~nx" внутри цикла в любом виде, будь то echo "%%~nx" или rem "%%~nx", 5 текстовых символов: "%%~nx", текстовую строку "%%~nx", string "%%~nx"
или такую строку буква в букву "текст текст %%~nx текст текст"

Это можно сделать только через такую переменную Var? А если три текстовых строки, то только Var1 Var2 Var3 ?
и только через Call Echo ? через rem никак не вывести такой текст "%%~nx" в консоль?

Код: Выделить весь код
pushd "C:\111"
Set "Var1=%%%%~nx"
Set "Var2=%%%%~fx"
Set "Var3=%%%%~dx"
for /f "delims=" %%x in ('dir /b/s/a-d "*.txt"') do (
Call Echo %%Var1%% text %%Var2%% text %%Var3%%
rem %%Var1%% text %%Var2%% text %%Var3%%
)
pause
как вариант, конечно можно переменную внутри цикла поменять на i вместо x, но это слишком легко и не справляется с задачей (вывести текст "%%~nx" в цикле %%x)
Код: Выделить весь код
pushd "C:\111"
for /f "delims=" %%i in ('dir /b/s/a-d "*.txt"') do (
rem %%%%~nx
echo %%%%~nx
set var = %%%%~nx
)
pause

Последний раз редактировалось shadowbat, 23-03-2019 в 13:43.


Отправлено: 13:11, 23-03-2019 | #6


Ветеран


Contributor


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

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


shadowbat, А зачем через rem? Это вообще не способ вывода чего-либо, это способ сделать строку неисполнимой. Не берусь предугадать, как там строка трансформируется. Какой смысл этих плясок? В чём задача, кроме как отобразить именно строку "%%~nx" в цикле?
Код: Выделить весь код
@Echo Off
cls
	Set "Var=%%%%~"

	for /f "delims=" %%x in ('dir /b/s/a-d "*.txt"') do (
		Call Echo %%Var%%nx=%%~nx  %%Var%%nxx=%%~nxx  %%Var%%zx=%%~zx  
	)
pause

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 23-03-2019 в 13:51.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:44, 23-03-2019 | #7


Ветеран


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

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


Цитата shadowbat:
хочу видеть текст "%%~nx" внутри цикла »
Цитата megaloman:
В чём задача, кроме как отобразить именно строку "%%~nx" в цикле? »
shadowbat, ну, разбейте, например, вывод на две строки:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

pushd "C:\Мои проекты\0254" && (
	for /f "delims=" %%x in ('dir /b /s /a:-d "*.txt"') do (
		<nul set /p sVar=%%%%
		echo ~nx = [%%~nx]
	)

	popd
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:55, 23-03-2019 | #8


Старожил


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

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


Цитата megaloman:
В чём задача, кроме как отобразить именно строку "%%~nx" в цикле? »
В этом и есть задача
Код: Выделить весь код
Set "Var=%%%%~"
Отлично, красиво.

Iska, благодарю за второе решение

Отправлено: 14:08, 23-03-2019 | #9


Ветеран


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

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


Код: Выделить весь код
@echo off
for /f "delims=" %%a in ('dir /a-d/b/s "*.txt"') do (
 set "name=%%~na"
 cmd /c echo var_for %%%%^^%^^%~na=%%~na
 echo var %%name%%=%%~na
 call echo zn [%%name%%]=%%~na
 echo:
)
pause

Последний раз редактировалось alpap, 24-03-2019 в 00:59.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:39, 24-03-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как сделать echo %%~nx

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Принтеры Star NX-1000 и NX-1500 J Fox Поиск драйверов, прошивок и руководств 33 16-03-2016 19:43
[решено] как разобрать ноут hp compaq nx 6110 Gobblin Ноутбуки 3 26-06-2010 19:25
Тихая установка UGS NX 5.0. Как? Pozia Автоматическая установка приложений 0 11-12-2009 21:25
Установка - [решено] Как сделать из настольной Windows 7 сделать ноутбучную версию? Andrei_IW Microsoft Windows 7 9 16-08-2009 15:53
Как сделать запуск windows 2000 без логинаКак сделать доступ RashidXa Сетевые технологии 2 09-04-2004 09:38




 
Переход