Гость
Форумы / Windows [игнор отключен] [закрыт для гостей] / bat и вывод названия файла в переменную / 15 сообщений из 15, страница 1 из 1
24.12.2014, 12:52
    #38841594
Hel975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
Пытаюсь вывести название файла в переменную и почему-то в переменную пишется только последнее считанное название. Делаю вот так:

Код: 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
24.12.2014, 13:21
    #38841625
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
Hel975почему-то в переменную пишется только последнее считанное название.
Потому что строка
Код: powershell
1.
SET FileName=%%~nxi


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

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


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

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

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

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

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

Hint: Команда SET способна не только установить переменную, но и вывести их список.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.07.2020, 04:58
    #39980216
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
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
16.07.2020, 19:57
    #39980625
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
Dimitry Sibiryakov
Потому что тщатильнее надо с кавычками.

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

Код: powershell
1.
ls -fi *.txt | select -exp Name
...
Рейтинг: 0 / 0
16.07.2020, 20:19
    #39980634
Olga22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
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
16.07.2020, 21:56
    #39980665
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bat и вывод названия файла в переменную
Olga22вот эта бяка все портила "!MY_VAR!".

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


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