change directory in batch file using variable - command-line

Here's the question:
set Pathname = C:\Program Files
cd %Pathname%
pause
The above doesn't change the directory, as I would expect. Can anybody please tell me why?

The set statement doesn't treat spaces the way you expect; your variable is really named Pathname[space] and is equal to [space]C:\Program Files.
Remove the spaces from both sides of the = sign, and put the value in double quotes:
set Pathname="C:\Program Files"
Also, if your command prompt is not open to C:\, then using cd alone can't change drives.
Use
cd /d %Pathname%
or
pushd %Pathname%
instead.

simple way to do this... here are the example
cd program files
cd poweriso
piso mount D:\<Filename.iso> <Virtual Drive>
Pause
this will mount the ISO image to the specific drive...use

Related

Unable to change directory in command line

I'm on c drive in command line
when I want to change the directory to D drive using :
cd /C D:\Riot Games
I get an error also with cmder
Assuming you're using Windows, and you're using the standard cmd.exe for your command line, you should be quoting your path arguments for safety even though the docs will tell you it isn't strictly necessary since the command doesn't treat spaces as delimiters. The correct syntax is simply:
cd "D:\Riot Games"
There is also no /C argument to the cd command. You may have meant to use:
cd /D "D:\Riot Games"
to change the current drive in addition to changing the current directory, but whether that's actually necessary isn't clear from your example.
On Windows CMD, you first need to switch to your other drive by just typing D:, then you can change directory by using the cd "Riot Games"

How can I return to the previous directory in windows command prompt?

I often want to return to the previous directory I was just in in cmd.exe, but windows does not have the "cd -" functionality of Unix. Also typing cd ../../.. is a lot of typing.
Is there a faster way to go up several directory levels?
And ideally return back afterwards?
This worked for me in powershell
cd ..
Steps:
pushd . (Keep old folder path on the stack)
cd ..\.. (Move to the folder whare you like to)
popd (Pop it from the stack. Meaning, Come back to the old folder)
On Windows CMD, I got used to using pushd and popd. Before changing directory I use pushd . to put the current directory on the stack, and then I use cd to move elsewhere. You can run pushd as often as you like, each time the specified directory goes on the stack. You can then CD to whatever directory, or directories , that you want. It does not matter how many times you run CD. When ready to return , I use popd to return to whatever directory is on top of the stack. This is suitable for simple use cases and is handy, as long as you remember to push a directory on the stack before using CD.
Run cmd.exe using the /k switch and a starting batch file that invokes doskey to use an enhanced versions of the cd command.
Here is a simple batch file to change directories to the first parameter (%1) passed in, and to remember the initial directory by calling pushd %1.
md_autoruns.cmd:
#echo off
cd %1
pushd %1
title aliases active
cls
%SystemRoot%\System32\doskey.exe /macrofile=c:\tools\aliases
We will also need a small helper batch file to remember the directory changes and to ignore changes to the same directory:
mycd.bat:
#echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD="%cd%"
) else (
cd /d %*
if not errorlevel 1 set OLDPWD="%cd%"
)
And a small aliases file showing what to do to make it all work:
aliases:
cd=C:\tools\mycd.bat $*
cd\=c:\tools\mycd.bat ..
A:=c:\tools\mycd.bat A:
B:=c:\tools\mycd.bat B:
C:=c:\tools\mycd.bat C:
...
Z:=c:\tools\mycd.bat Z:
.=cd
..=c:\tools\mycd.bat ..
...=c:\tools\mycd.bat ..\..
....=c:\tools\mycd.bat ..\..\..
.....=c:\tools\mycd.bat ..\..\..\..
......=c:\tools\mycd.bat ..\..\..\..\..
.......=c:\tools\mycd.bat ..\..\..\..\..\..
........=c:\tools\mycd.bat ..\..\..\..\..\..\..
.........=c:\tools\mycd.bat ..\..\..\..\..\..\..\..
tools=c:\tools\mycd.bat C:\tools
wk=c:\tools\mycd.bat %WORKSPACE%
Now you can go up a directory level by typing ..
Add another . for each level you want to go up.
When you want to go back, type cd - and you will be back where you started.
Aliases to jump to directories like wk or tools (shown above) swiftly take you from location to location, are easy to create, and can really help if you work in the command line frequently.
You could use the command:
cd ..\ -> To go up one level
cd ..\..\ -> To go up two levels
Note the space after cd

Calling Date Modified in CMD

Basically just attempting to create a very basic program that will display the last modified date of a file on our server. Problem is I have no idea how to write it. This is what I attempted
cd \\Server\Folder
msg dir
I also ran into the problem "CMD Does not support UNC Paths as Current Directories" when I tried to change the CD to our servers directory.
What I would like it to do is display in a dialog box the modified date of a "Text.txt" located on our server \\Server\Folder
Any and all help is appreciated
Next .bat script should work:
set "_folder=\\Server\Folder"
set "_filename=Text.txt"
set "_filedatetime=N/A"
pushd %_folder%
for %%G in (%_filename%) do (
rem echo %%~tG %%~fG
if not "%%~tG"=="" set "_filedatetime=%%~tG"
)
popd
echo file %_folder%\%_filename% date and time: %_filedatetime%
Note there is no dialog box in pure cmd command line interpreter, try set /P.
Resources:
SET: Display, set, or remove CMD environment variables
PUSHD, POPD: and UNC Network paths
FOR commands
~ Parameter Extensions

Why is the "dir" command not showing me certain folders?

I used the dir command in the Windows command prompt to display the list of files/folders in a directory. I noticed that it did not display a folder named tmp. However, I tried running dir in Powershell, and it did display the tmp folder in the output. Why did the Windows command prompt hide this folder from me?
You need to add the "show hidden" option to dir:
dir /a
this should do the trick.
source
Try attrib /?. EG attrib c:\folder\tmp /d.
A leading dot means nothing in Windows.

Command line: Create folders in subfolders with spaces

For a project I received 700 folders with names of institutions (containing spaces).
The purpose is now to create subfolders in each of these folders.
[institution folder]\Documents\
[institution folder]\Images\
[institution folder]\Videos\
According some posts here the below script should work to create the Documents folder
FOR /d %A IN (C:\Users\myname\project\institutions\*) DO mkdir %A\Documents
However, I notice in the feedback that I get from the command line that this instruction fails at the spaces in the foldername. How can I get this to work?
FOR /d %A IN (C:\Users\myname\project\institutions\*) DO mkdir "%A"\Documents
should do the trick.
make sure you wrap expressions containing spaces with " to make sure the shell sees them as a single entity.