CMD/BAT - [решено] как сделать echo %%~nx

Аватара пользователя
shadowbat

CMD/BAT - [решено] как сделать echo %%~nx

Сообщение shadowbat »

Как сделать, чтобы в консоль вывелась переменная, не её значение, а код переменной, текст "%%~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
Аватара пользователя
shadowbat

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение shadowbat »

alpap, тут работает только первая строка из трёх?

в любом случае это третье решение задачи

Изображение



даже обычный echo во второй строке почти получился:



Код:

Код: Выделить всё

cmd /c echo text %%%%^^%^^%~na text
       echo text %%%%^^%^^%~na text

Изображение
Аватара пользователя
sov44

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение sov44 »

Цитата sov44:



так?
CMD/BAT - [решено] как сделать echo %%~nx




нужно в этих строчках что-то изменить



Код:

Код: Выделить всё

rem %%~nx
echo %%~nx

что-то типа этого



Код:

Код: Выделить всё

rem ^%^%^~nx
echo ^%^%^~nx
Аватара пользователя
shadowbat

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение shadowbat »

Цитата shadowbat:



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




Э… Имя переменной окружения?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение Iska »

shadowbat, Что такое
Цитата shadowbat:



переменная, не её значение, а код переменной
CMD/BAT - [решено] как сделать echo %%~nx




Нарисуйте ручками, приведите пример, что Вы хотите видеть на консоли?

Если на консоли Вы хотите видеть именно "%%~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

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение megaloman »

Цитата megaloman:



Если на консоли Вы хотите видеть именно "%%~nx" (нет смысла в этом действии внутри цикла)

Нарисуйте ручками, приведите пример, что Вы хотите видеть на консоли?
CMD/BAT - [решено] как сделать echo %%~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

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение shadowbat »

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

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение megaloman »

Цитата shadowbat:



хочу видеть текст "%%~nx" внутри цикла
CMD/BAT - [решено] как сделать echo %%~nx





Цитата megaloman:



В чём задача, кроме как отобразить именно строку "%%~nx" в цикле?
CMD/BAT - [решено] как сделать echo %%~nx




shadowbat, ну, разбейте, например, вывод на две строки:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
pushd "C:\Мои проекты\0254" && (
	for /f "delims=" %%x in ('dir /b /s /a:-d "*.txt"') do (
		
Аватара пользователя
Iska

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение Iska »

Цитата megaloman:



В чём задача, кроме как отобразить именно строку "%%~nx" в цикле?
CMD/BAT - [решено] как сделать echo %%~nx




В этом и есть задача



Код:

Код: Выделить всё

Set "Var=%%%%~"

Отлично, красиво.



Iska, благодарю за второе решение
Аватара пользователя
shadowbat

Re: CMD/BAT - [решено] как сделать echo %%~nx

Сообщение shadowbat »

Код:

Код: Выделить всё

@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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»