Untuk loop untuk manipulasi teks tidak berfungsi - CMD

1

Saya punya file abc1.txt dengan konten berikut:

a1
b2
c3

File CMCM saya berisi:

@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

Output saya pada menjalankan file CMD adalah:

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

Saya hanya tidak bisa mengerti mengapa variabel gurl dan gfname tidak dicetak! Tolong bantu. :(

pengguna652320
sumber

Jawaban:

0

Saya tidak mengerti mengapa variabel gurldan gfnametidak dicetak

Anda memiliki enabledelayedexpansiontetapi Anda tidak menggunakan ekspansi yang tertunda.

Untuk menggunakan ekspansi yang tertunda, Anda perlu mengganti %variable%dengan !variable!sebagai berikut.

File batch terkoreksi (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  

Contoh output:

> test
1
a1
a1
2
b2
b2
3
c3
c3

Bacaan lebih lanjut

DavidPostill
sumber