更改批處理文件中批處理參數(shù)的位置。
啟用命令擴(kuò)展(默認(rèn)設(shè)置)后,shift 命令支持 /n 命令行選項(xiàng),該選項(xiàng)通知命令在第 n 個(gè)參數(shù)處開(kāi)始更改,n 可以是 0 到 8 的任何一個(gè)值。例如,
SHIFT /2
可以將 %3 改為 %2,將 %4 改為 %3 等等,而 %0 和 %1 保持不變。
shift 命令通過(guò)將每個(gè)參數(shù)復(fù)制到前一個(gè)參數(shù)中,更改批處理參數(shù) %0 到 %9 的值。也就是說(shuō),將 %1 的值復(fù)制到 %0,%2 的值復(fù)制到 %1,依次類推。該命令在撰寫(xiě)對(duì)任何數(shù)目的參數(shù)執(zhí)行相同操作的批處理文件時(shí)非常有用。
也可以使用 shift 命令創(chuàng)建可以接受 10 個(gè)以上批處理參數(shù)的批處理文件。如果在命令行上指定了 10 個(gè)以上的參數(shù),第十個(gè) (%9) 參數(shù)之后的參數(shù)將更改為 %9,一次更改一個(gè)。
Shift 對(duì) %* 批處理參數(shù)沒(méi)有影響。
沒(méi)有反向的 shift 命令。執(zhí)行了 shift 命令后,不能恢復(fù)更改前存在的第一個(gè)批處理參數(shù) (%0)。
以下批處理文件 Mycopy.bat 顯示了如何使用包含任意數(shù)目批處理參數(shù)的 shift 命令。該批處理文件將一列文件復(fù)制到特定的目錄。批處理參數(shù)由目錄和文件名參數(shù)表示。
@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ...
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done
相關(guān)文章