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. :(

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.