cố gắng tạo tập lệnh .bat và cần phải thực hiện một số chuỗi hoạt động đúng cách.Cmd: không đánh giá các biến bên trong một vòng lặp
Đây là những gì tôi đã có cho đến nay
@echo off
for /r %%i in (*.csv) do (
set str=%%i
set str=%str:csv=rar%
echo %%i
echo.%str%
)
Nói rằng tôi đã có chạy này trong C: \, và có 5 csv, 1.csv, 2.csv ... 5.csv
lần đầu tiên tôi chạy nó, tôi nhận được đầu ra của:
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
lần thứ hai tôi nhận được:
C:\1.csv
csv=rar
C:\2.csv
csv=rar
C:\3.csv
csv=rar
C:\4.csv
csv=rar
C:\5.csv
Sau đó, tất cả các cuộc gọi tiếp theo tôi nhận được:
C:\1.csv
rar=rar
C:\2.csv
rar=rar
C:\3.csv
rar=rar
C:\4.csv
rar=rar
C:\5.csv
Khi những gì tôi sẽ mong đợi để nhận được là thẳng qua:
C:\1.csv
C:\1.rar
C:\2.csv
C:\2.rar
C:\3.csv
C:\3.rar
C:\4.csv
C:\4.rar
C:\5.csv
C:\5.rar
Vì vậy, tôi loại bỏ các thay:
@echo off
for /r %%i in (*.csv) do (
echo %%i
set str=%%i
echo.%str%
)
chạy đầu tiên :
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
Second Run:
C:\1.csv
C:\5.csv
C:\2.csv
C:\5.csv
C:\3.csv
C:\5.csv
C:\4.csv
C:\5.csv
C:\5.csv
C:\5.csv
Nó giống như nó không đặt biến str cho đến khi thời gian cuối cùng của vòng lặp, mặc dù nó cố gắng để echo ra biến, dòng trong đó xảy ra sau khi cài đặt, và sau đó lưu này cho vòng lặp tiếp theo? Có cái gì tôi đang thiếu trên cách nó processess vòng?
Cảm ơn
Bạn thưa bạn, là một quý ông! (Sẽ chấp nhận trong 5 phút khi tôi có thể) – Psytronic
Đó là một vấn đề phổ biến với các tập tin batch ... Tôi đã bị lừa bởi một số tháng trước… – Benoit