powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / bat и вывод названия файла в переменную
15 сообщений из 15, страница 1 из 1
bat и вывод названия файла в переменную
    #38841594
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь вывести название файла в переменную и почему-то в переменную пишется только последнее считанное название. Делаю вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@ECHO OFF
REM Запоминаем каталог, в котором работаем
SET CUR_DIR=%CD%

FOR %%i IN (%CUR_DIR%\*.txt) DO (	
 	SET FileName=%%~nxi
	@ECHO %FileName%
	@ECHO %%~nxi
	@ECHO %FileName:~0,5%9
)

В FileName выводится одно и тоже значение - последнее, а в @ECHO %%~nxi выводятся нормально все. Почему? Мне в дальнейшем надо переименовывать названия файлов в текущем каталоге, заменяя один символ.
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841625
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975почему-то в переменную пишется только последнее считанное название.
Потому что строка
Код: powershell
1.
SET FileName=%%~nxi


уничтожает старое значение и присваивает новое.

Hel975в дальнейшем надо переименовывать названия файлов в текущем каталоге, заменяя один символ.
Так сразу в этом цикле и переименовывай.
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841671
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaHel975почему-то в переменную пишется только последнее считанное название.
Потому что строка
Код: powershell
1.
SET FileName=%%~nxi


уничтожает старое значение и присваивает новое.

Почему уничтожается старое значение до вывода на экран?

AkinaHel975в дальнейшем надо переименовывать названия файлов в текущем каталоге, заменяя один символ.
Так сразу в этом цикле и переименовывай.

Сразу в цикле у меня не получилось переименовать.
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841679
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте
set /P ....
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841710
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге сделала по-другому, на много проще - используя функцию REN.
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841722
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975Почему уничтожается старое значение до вывода на экран?Не поверишь - потому что вывод на экран выполняется после присвоения...
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841754
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaHel975Почему уничтожается старое значение до вывода на экран?Не поверишь - потому что вывод на экран выполняется после присвоения...

Так я же вывожу на экран, то что присвоено...
SET FileName=%%~nxi
@ECHO %FileName%
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #38841949
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975Так я же вывожу на экран, то что присвоено...Читайте set /? - там всё написано. Даже ваш случай рассмотрен.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
bat и вывод названия файла в переменную
    #39980190
Olga22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему? Почему не присваивается?!
set "MY_VAR=%%~nxi"
echo Simple Name: %%~nxi
echo Simple Name: %MY_VAR%
Подскажите, пожалуйста, почему первое эхо выводит название папки, а второе - пустоту.
Windows 7
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что тщатильнее надо с кавычками.

Hint: Команда SET способна не только установить переменную, но и вывести их список.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980216
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga22
Почему? Почему не присваивается?!
set "MY_VAR=%%~nxi"
echo Simple Name: %%~nxi
echo Simple Name: %MY_VAR%
Подскажите, пожалуйста, почему первое эхо выводит название папки, а второе - пустоту.
Windows 7


1. Кавычки в set
2. Посмотрите setlocal enabledelayedexpansion
3. После echo Simple Name: !MY_VAR!
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980625
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Потому что тщатильнее надо с кавычками.

Потому что выкинуть весь этот досовский хлам, потратить полдня-день на освоение повершелл и после этого перестать давиться кактусом.

Код: powershell
1.
ls -fi *.txt | select -exp Name
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980634
Olga22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x1ca4064
Olga22
Почему? Почему не присваивается?!
set "MY_VAR=%%~nxi"
echo Simple Name: %%~nxi
echo Simple Name: %MY_VAR%
Подскажите, пожалуйста, почему первое эхо выводит название папки, а второе - пустоту.
Windows 7


1. Кавычки в set
2. Посмотрите setlocal enabledelayedexpansion
3. После echo Simple Name: !MY_VAR!


Спасибо! Спасибо большое! Все работает. setlocal enabledelayedexpansion стоял, с кавычками вроде все норм - вот эта бяка все портила "!MY_VAR!".
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980665
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Olga22вот эта бяка все портила "!MY_VAR!".

Ничего подобного. Специально пишу, чтобы гугль и прочие записали: это бред. delayed
expansion требуется только если переменная присваивается и используется в пределах одного
оператора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
bat и вывод названия файла в переменную
    #39980941
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бредом является сам cmd с момента своего рождения; со всем его пещерным примитивизмом и нелепостями типа delayedexpansion.
прошу гугл занести эти слова в протокол.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / bat и вывод названия файла в переменную
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]