Monday, November 14, 2005

Random DOS Nuances: for-loops, params, and if-blocks

[This was originally posted at http://timstall.dotnetdevelopersjournal.com/random_dos_nuances_forloops_params_and_ifblocks.htm]

I've blogged some tips on DOS before, but here are some more. One of my coworkers (thanks Roey) pointed out several DOS nuances that I found useful - they're the kind of things that are easy to miss:

Use single % for parameters (like %1), double %% for variables (like %myVar%)

While you can use environmental variables using the percent signs like so: %myVar%, parameters only have the first percent, like so: %1. What's tedious is if you make it %1%, you may be able to get away with it in some cases. But if you put two parameters on the same like like %1...%2, then you need to get it straight.

Set operators within an if-block don't update until after the if-block finishes

In a language like C#, you could both update the variable, and then use that variable within the same if-block. Apparently you can't do that in DOS.

REM: Won't work:
If 0 EQU 0 (
    set outputFile="ABC"
    Echo Value: %outputFile%
)

You need to let the if-block finish first. You can do this by putting the set operation in its own block, either like this:

REM: WIll work:
If 0 EQU 0 (
set outputFile="ABC"
)
Echo Value: %outputFile%

or like this:

REM: will also work:
If 0 EQU 0 set outputFile="ABC"
If 0 EQU 0 Echo Value: %outputFile%

DOS for-loops in a batch script require an extra '%' in front of the variable.

This will fail:

Rem start loop:
for /F %a in (C:\temp\List.txt) do Echo %a
Pause

This will work:

Rem start loop:
for /F %%a in (C:\temp\List.txt) do Echo %%a
Pause

This last one is especially tedious to debug because if you copy the contents of the script to a command window to run it, then it suddenly works.
 

1 comment:

  1. Hiện nay không gian làm việc tại văn phòng có sự ảnh hưởng lớn đên năng suất cũng như tinh thần làm việc của nhân viên chính vì thế cho nên khi lựa chọn những sản phẩm noi that van phong cần nên chú tâm đến không gian và cách bố trí các sản phẩm trong văn phòng sao cho tạo sự tuận tiện thoải mái trong công việc của nhân viên. Nối đến văn phòng thì sản phẩm bàn làm việc , ghế, tủ cũng được lựa chọn kĩ càng phù hợp không gain diện tích làm việc tạo sử thoải máu cho nhân ngồi làm việc. Để bàn văn phòng làm việc của nhân viên được gọn gàng thì nên trang bị thêm tủ phụ đi đối với bàn làm việc hoặc có thể lựa chọn mẫu tu tai lieu van phong cho thích hợp việc bảo quan và lưu trữ hồ sơ công ty được an toàn tránh mọi tác động môi trường bên ngoài.
    Ngoài ra song song viẹc chọn bàn ghế thi bạn cũng cần xem thêm các mẫu tu ho so về màu sắc, kểu dàng và kịch thước để bố trí tủ cho phù hơpk khôn gian và gam màu trùng hợp với không gian nội thất và các sản phẩm nội thất khác trong văn phòng làm việc. Ngày nay các văn phòng công ty có xu hướng chọn riêng mỗi phòng bạn chiếc tủ văn phòng? Thì trên thị trường có 1 loại tủ sắt và loại tu go nên các khắc hàng cân nhắc khi chọn mua. Tủ sắt bền đẹp, chónglại tác nhân ngoài nhưng màu sắc kiểu dáng không phù hợp không gian bên trong văn phòng cho nên việc chọn lựa mẫu tủ gỗ văn phòng dành cho văn phòng công ty nên dựa theo các xu hướng trong thiết kế nội thất văn phong.

    ReplyDelete