Stores the current directory for use by the popd command, and then changes to the specified directory.

Every time you use the pushd command, a single directory is stored for your use. However, you can store multiple directories by using the pushd command multiple times. The directories are stored sequentially in a virtual stack, so if you use the pushd command once, the directory in which you use the command is placed at the bottom of the stack. If you use the command again, the second directory is placed on top of the first one. The process repeats every time you use the pushd command.

If you use the popd command, the directory on the top of the stack is removed and the current directory is changed to that directory. If you use the popd command again, the next directory on the stack is removed. If command extensions are enabled, the popd command removes any drive-letter assignment created by the pushd command.


pushd [<path>]


Parameter Description
<path> Specifies the directory to make the current directory. This command supports relative paths.
/? Displays help at the command prompt.


  • If command extensions are enabled, the pushd command accepts either a network path or a local drive letter and path.

  • If you specify a network path, the pushd command temporarily assigns the highest unused drive letter (starting with Z:) to the specified network resource. The command then changes the current drive and directory to the specified directory on the newly assigned drive. If you use the popd command with command extensions enabled, the popd command removes the drive-letter assignment created by pushd.


To change the current directory from the one in which the batch program was run, and then to change it back:

@echo off
rem This batch file deletes all .txt files in a specified directory
pushd %1
del *.txt
echo All text files deleted in the %1 directory