Run Second Command If the First Fails

Q

How to run two commands with a condition that the second one will run only if the first one fails?

✍: FYIcenter.com

A

You can run two commands with a condition that the second one will run only if the first one fails with the syntax below:

command-1 || command-2

For example, if you want to write a message to the screen only after the "ping" command fails to reach a remote server, you can use the following command line:

ping host-name || echo Server not reachable

If you try this with google.com, the message will not be displayed:

C:\fyicenter>ping google.com || echo Server not reachable

Pinging google.com [172.217.10.78] with 32 bytes of data:
Reply from 172.217.10.78: bytes=32 time=23ms TTL=56
Reply from 172.217.10.78: bytes=32 time=23ms TTL=56
Reply from 172.217.10.78: bytes=32 time=30ms TTL=56
Reply from 172.217.10.78: bytes=32 time=29ms TTL=56

Ping statistics for 172.217.10.78:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 23ms, Maximum = 30ms, Average = 26ms

If you try this with a server that is not reachable, the message will be displayed:

C:\fyicenter>ping junk.com || echo Server not reachable

Pinging junk.com [23.23.86.44] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 23.23.86.44:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Server not reachable

 

File Name and File Path

Run Second Command If the First Successful

Windows Command Syntax

⇑⇑ Windows Batch File Tutorials

2017-12-05, 164👍, 0💬