ممکن است دستور SHIFT در برخی از فایل های دسته ای خود مفید باشد. کاری که SHIFT انجام می دهد این است که پارامترهای خط فرمان را از راست به چپ تغییر می دهد. (پارامترهای خط فرمان، پارامترهایی هستند که در خط فرمان مورد استفاده برای اجرای فایل دستهای شما قرار میگیرند.) این یک راه را در اختیار شما قرار میدهد، برای مثال، فایل دستهای شما تعداد متغیری از پارامترها را بپذیرد.
در داخل، مفسر فرمان عناصر خط فرمان را شماره گذاری می کند. به عنوان مثال، دستور زیر را در نظر بگیرید که یک فایل دسته ای به نام DOIT.BAT را اجرا می کند:
doit first second third fourth fifth
در این مثال، دستور "doit" است که با پنج پارامتر دنبال می شود: اول، دوم، سوم، چهارم و پنجم. مفسر فرمان، به صورت داخلی، این پارامترها را از %1 تا %5 شماره گذاری می کند. با این حال، در واقعیت، یک "پارامتر" با شماره %0 وجود دارد: خود فرمان (نام فایل دسته ای).
برای مشاهده نحوه عملکرد، فایل DOIT.BAT خود را ایجاد کنید که حاوی دستورات زیر است:
@ECHO OFF CLS :TOP IF [%0]==[] GOTO :EOF ECHO %0 %1 %2 %3 %4 %5 SHIFT GOTO TOP
فایل دسته ای ابتدا بازتاب دستورات روی صفحه را خاموش می کند، سپس صفحه را پاک می کند. سپس حلقهای از دستورات (از :TOP تا انتهای فایل) را تنظیم میکند که عناصر خط فرمان را به صفحه بازتاب میدهد و سپس (از طریق استفاده از دستور SHIFT) همه عناصر را به چپ منتقل میکند. پس از جابجایی، عنصر %0 کنار گذاشته می شود، عنصر % 1 تبدیل به %0 می شود، عنصر %2 به %1 تبدیل می شود و به همین ترتیب. وقتی فایل دسته ای را اجرا می کنید، باید خروجی زیر را ببینید:
doit first second third fourth fifth first second third fourth fifth second third fourth fifth third fourth fifth fourth fifth fifth
وقتی از SHIFT در فایلهای دستهای خود استفاده میکنید، میتوانید فایل را با تعداد متغیری از پارامترها فراخوانی کنید و سپس آن پارامترها را جابجا کنید تا پردازش خود را انجام دهید.