1. 程式人生 > >DOS(CMD)下批處理換行問題/命令列引數換行 arg ms-dos

DOS(CMD)下批處理換行問題/命令列引數換行 arg ms-dos

程式來自:http://hi.baidu.com/nxhujiee/item/ae52584c36a13d0f6dc2f0f8

DOS(CMD)下批處理換行問題本人經常寫一些DOS批處理檔案,由於批處理中命令的參考較多且長,寫在一行太不容易分辨,所以總想找個辦法把一條命令分行來寫,今天終於試成功兩種方法。一、在CMD下,可以用^作為換行符,類似於Linux下的\。舉例如下:
start pemu.exe ^
-net nic,vlan=1,macaddr=00:aa:00:00:01:01 -net tap,vlan=1,ifname=tap1 ^
-net nic,vlan=2,macaddr=00:aa:00:00:01:02 -net tap,vlan=2,ifname=tap2 ^
-net nic,vlan=3,macaddr=00:aa:00:00:01:03 -net tap,vlan=3,ifname=tap3 ^
-serial [url=telnet::1007,server]telnet::1007,server[/url] ^
-m 128 FLASH802


二、用變數。舉例如下:
@echo off
setlocal
set command_name=start pemu.exe
set nic1=-net nic,vlan=1,macaddr=00:aa:00:00:01:01 -net tap,vlan=1,ifname=tap1
set nic2=-net nic,vlan=2,macaddr=00:aa:00:00:01:02 -net tap,vlan=2,ifname=tap2
set nic3=-net nic,vlan=3,macaddr=00:aa:00:00:01:03 -net tap,vlan=3,ifname=tap3
set options=-serial [url=telnet::1007,server]telnet::1007,server[/url]
set parameter= -m 128 FLASH802
%command_name% %nic1% %nic2% %nic3% %options% %parameter%

我補充一下:

換行的最後一個引數裡最好不要帶%&#,否則容易識別錯誤,有這種引數放到最後或者中間的引數集即可。