1

У меня есть файл abc1.txt со следующим содержанием:

a1
b2
c3

МойФайл CMD содержит:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%g in (abc1.txt) do (
   set gurl=%%g
   set gfname=%gurl:~-1%
   echo %gfname%
   echo %gurl%
   echo %%g 
)
echo on

Мой вывод при запуске файла CMD:

ECHO is off.
ECHO is off.
a1
ECHO is off.
ECHO is off.
b2
ECHO is off.
ECHO is off.
c3

Я просто не могу понять, почему переменные gurl и gfname не печатаются! Пожалуйста помоги. :(

1 ответ1

0

Я не понимаю, почему переменные gurl и gfname не печатаются

У вас есть enabledelayedexpansion но вы не используете отложенное расширение.

Чтобы использовать отложенное расширение, вам нужно заменить %variable% на !variable! следующее.

Исправленный пакетный файл (test.cmd):

@echo off 
setlocal enabledelayedexpansion
@ECHO off
for /f "tokens=*" %%g in (abc1.txt) do (
   set gurl=%%g
   set gfname=!gurl:~-1!
   echo !gfname!
   echo !gurl!
   echo %%g 
)
endlocal  

Пример вывода:

> test
1
a1
a1
2
b2
b2
3
c3
c3

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .