How to change directory to run .bat files from different drive? - windows

I have some .bat files that I run from the local directory (e.g. C:\Users\pozna001). However, when I try and change the directory to a data drive using cd F:\nrcs_project to run the .bat files from a different location, I see that the command prompt does not recognize the cd command. How can I change the directory in the command prompt so that I can run these .bat files from a different drive (i.e. a data drive connected to a server)?

CD /D F:\nrcs_project
Use the /D switch to change current drive in addition to changing current directory for a drive.

If you need to go from a device to another (in your case from C:\ to F:\, you need to type F: before/after you entered your cd command, so it will go on the F device. Otherwise, you can use the /D parameter of the cd function.
So to sum up,
$C:\Folder> F:
$F:\>cd F:\whatever
$F:\whatever>...
or
$C:\Folder> cd F:\whatever
$C:\Folder> F:
$F:\whatever>...
or
$C:\Folder> cd /D F:\whatever
$F:\whatever>...

You first need to type F: to change to the F:\ drive, then you can use the CD command
Or you can use the /D switch to do it all in one shot:
CD /D F:\nrcs_project

the command will look like following:
F: && cd nrcs_project

Both solution above are correct.
The fastest is:
cd /d f:\nrcs_project
But you could change drive first, then the directory.
Use cd /? and it will show you all params.

you can also use:
pushd "F:\nrcs_project"
this will allow also to return to the previous direcotry with popd
Mind that it is a good practice to enclose paths with double quotes in case of special characters,spaces and so on..

Related

I am unable to change the directory in cmd

cmd is not able to change the directory using the command
C:\Windows\system32>CD I:
It is going back to same C: directory
The screenshot
Just type "I:" and press Enter, then use "CD foldername" to dive into your folders.
The short answer
The correct commando to go from C:\Windows\system32 to I:\, is this :
cd /d i:\
More details
If you're somewhere random on your I:\ drive, and you want to go to the root of your drive, you can use this command :
cd i:\
If you're somewhere random on your I:\ drive, and you want to go to a specific folder on your drive, you can use this command :
cd i:\path\to\my\folder
If you're on a different drive, and you want to go to the root of your I:\ drive, you can use this command :
cd /d i:\
If you're on a different drive, and you want to go to a specific folder on your I: drive, you can use this command :
cd /d i:\path\to\my\folder
If you're on a different drive, and you want to go to the last open folder of you I: drive, you can use this command :
cd /d i:
As a shorthand for cd /d i:, you can also use this command :
i:
Read cd /? to learn there is a /d switch to change drive and directory at the same time
Keep in mind that a
cd I:\
would have an effect even if the current drive would not change .
An alternative would be
pushd "I:\"
which stores the current location on a stack and can be recalled lateron with
popd

How to change to directory to your homedrive?(C:\, D:\, etc..)

I am writing this batch file which searches for specific a specific file. Now every time the code cd /D "%HOMEDRIVE%" is executed, it of course starts to search in that directory. But what I get is file not found.
I tried doing cd /D "%HOMEDRIVE% in the command line but it only replies where the cmd is run (e.g C:\Users\onlYUs)
How do I fix this? There is an environment variable named HOMEDRIVE whose value is C:. But it does not change to that directory. And by the way the reason why I needed that because if an instance that your homedrive is set to D: or E: it can still search for the file. Any help would be greatly appreciated!
You can't change to a directory without providing a path to a directory, and %HOMEDRIVE% only contains a drive letter. Without the backslash, it's the equivalent of typing C: at the command prompt, which only changes the drive.
You need to add the trailing path separator (backslash) to make it a directory path instead, because you're wanting to change to the root directory of that drive.
This does not work:
cd /D %HOMEDRIVE%
This does work (note the trailing backslash):
cd /D %HOMEDRIVE%\
An alternative way is pushd %HOMEDRIVE%\ which allows the batch to later popd back to the drive and directory that were initially current.

To change drive and directory at the same time

Hi presently I am using command prompt frequently. Every time I need to access different folders of different drives so I need to change drive and directory at the same time For this I got a solution:
C:> CD /D D:\JAVA it's working fine. But why we are using "/D"
So please explain me why we are using /D.
CD /D ... changes the current drive in addition to changing folder.
Source CD Change Directory - Select a Folder (and drive)
Syntax
CD [/D] [drive:][path]
CD [..]
Key
/D : change the current DRIVE in addition to changing folder.
...
Changing the Current drive
Enter the drive letter followed by a colon.
C:> E:
E:>
To change drive and directory at the same time, use CD with the /D
switch.
C:> cd /D
E:\utils E:\utils\>
cd /? Will answer that for you.
The alternative to cd /d d:\java is d: then cd java. If you then changed to another drive (say C:) and ran dir d: you would still see the contents of the java directory. i.e. The OS remembers what directory each drive is currently looking at. Likewise you can just run C:>cd d:\otherDir c:>dir d: and see the contents of otherDir.
By using the command -
CD [/D] [drive:][path]
on cmd it means to jump to a different directory where /D simply means to jump to another directory. This command also gives freedom in using different drives unlike the cd [drive:][path] command.
By using the above command it is also possible to move to the same previous working directory in a specific Drive just by writing Drive name followed by a colon. For eg:
C:\Users>cd /D G:\FUN
G:\FUN>C:
C:\Users>

cd inside a windows cmd, how to get back to original directory?

I am cd ing to a directory inside a windows .cmd file, but this file has various return points,
how do I make return to the original directory without saving the original directory and returning to it explicitly at every return point in the script.
I think is has something to do with scope....?
Use PUSHD and POPD.
C:
CD \
PUSHD C:\Windows
POPD
Just add another level of indirection. Instead of original_script.cmd, run this:
PUSHD
CALL original_script.cmd
POPD

Changing the path of a batch file (.bat)

How can we change the path of a batch file (.bat) ?
I've got a feeling it is about changing the current working directory.
To do that, use the command cd to change current working directory.
#echo off
C:
cd C:\Windows\System32\
If you change both the current drive and the current directory you'll need the /D switch:
cd /D D:\Foo
as in adding a temporary extra path to %PATH%?
try:
set path=%PATH%;c:\folder
where c:\folder is what you want to add
if you want a permanent path set use a tool called "setx"
otherwise you could call something directly without using CD etc using something like "c:\folder\program.exe"
Firstly, make sure you change the drivename to.
then use cd command
c:
cd "c:\windows\"
cd /d d:\foo
or, if you want to jump back to the source directory
pushd d:\foo
with
popd
you switch back to the directory before the pushd
Are you talking about changing the path of a command within the batch file? If yes then pass the path as an argument.
Hope I understood your question.

Resources