Run multiple lines from .bat file - batch-file

I'm trying to get a bat file together and not sure how to run multiple cmd lines through the .bat.
Objective: I want to be able to click on this .bat file to open cmd prompt, then to find a "folder" in the directory, rename the "Folder" then move the location of the folder then find a existing Folder and put it in the same directory.
Problem: i know how to run these cmds in the prompt without an issues.
So far this is what i have:
#echo off
start cmd.exe /k cd %AppData%\Microsoft\Network\Connections

#echo off
and then just write your commands its that simple

A .bat file is executed in a terminal window automatically, you don't need to call cmd.exe or anything like that.
Every single line you write in the .bat file is going to be executed one by one, so you just need to write multiple lines with all the instructions and then you can double click on your new file to run the script.
If you are not familiar with Windows commands for the terminal, you can find more info on the web about how to find a folder, rename it, etc. There are many things you can do by command line and this is not the right place to explain how to use them.

Related

Batch file that launch commands in CMDER

I need to find a way to execute commands in bat file via cmder.
When I put start -cur_console:s1T50H -cur_console:d:C:\Users\MY\Path\ inside cmder its open another shell as i want.
What should I do to make it happen when I execute my bat file?
My .bat file right now:
#echo off
start C:\Users\PATH\TO\CMDER\FOLDER\cmder.exe
pause
What should I write after start the cmder?

How to fix my batch file to open the appropriate program?

I'm attempting to write a batch file that will move to the specified directory and then run the command to open my desired program. Specifically I want it to run the command HardwareSimulator so it will open the software nand2tetris provides.
I've gotten it to move to the directory I want, but the opening is my issue. Code is displayed below. I'm guessing start isn't the correct command since when I run, it just runs an infinite loop of opening cmd prompts.
My second question would be: can I only go into sub-directories of where my batch file is already stored? It would be easier to store it in my desktop, so I can just click it whenever, but I can't seem to make it back out of a directory and then go down into another.
start cmd
pushd \nand2tetris\projects\P1Codes
start HardwareSimulator
pause
You can use ..\ to go back a directory.
For instance, if you had nand2tetris in your downloads folder you could get to it from the desktop with this script. Also make sure to to include the file extension.
pushd ..\Downloads\nand2tetris\projects\P1Codes
start HardwareSimulator.exe
pause

Batch file to eject USB External Drive that is "in use"

I have a batch file that copies files from and to an external hard drive. I wanted to add a section at the end of the script that would automatically eject the hard drive so it could be safely removed. I did some research and found that Remove Drive is my best option. I have it set up to use and working. I can write a bat file
#echo off
RemoveDrive :E -L
and it works perfectly!
However, I've hit a snag. When I add this exact line (well without the #echo off) to the end of my bat file, it fails to eject. My guess is that its the same problem as when you've got files open from a usb drive and try to eject it. It won't work because the system is using it. I tested this by creating a seperate bat file that ran just the RemoveDrive named it "RemoveDrive.bat". I then added to the end of my batch file:
pause
call "RemoveDrive.bat"
When the script hit the pause command. I tried to run the batch file by simply clicking the icon. The eject attempt failed. I pressed any key to continue and the called bat file failed and the script (and cmd window) closed. I then double clicked the icon for "RemoveDrive.bat" and it worked.
So after that long explanation, I was wondering if anyone had any suggestions for how to work around this. I was thinking if there was a way I could use the call function with some sort of delay and could close the cmd window. If I could get the cmd window to close and then have the bat file run automatically, I'm betting that would work.

Starting a batch file from another batch file only opens CMD

When I start a batch file from another batch file, it just opens a new CMD window named just "TEST.bat", and doesn't run the actual batch. Running it manually works fine.
cd %~dp0\Colours\TEST.bat
start "TEST.bat"
I have tried many different ways to run the batch, but it all does the same thing. I've also tried to run the batch as administrator but same result again.
Full code(not finished): http://pastebin.com/GE8yJP0J
To run another batch file, use call not start. Also: cd expects a directory, not a filename.
cd "%~dp0\Colours"
call TEST.bat

How do I send commands in a batch file to a command line .exe?

I am vaguely familiar with batch. Super light knowledge. Anyways, I have this program that runs in a command line mode (it happens to render minecraft maps).
It is normally used by opening cmd, and typing mapcrafter.exe -c config.config -j 8 which runs the exe, specifies the config file, and runs the job with 8 threads.
One thing I wanted to do was put all of this in a batch file so I didn't have to type everything in every time I wanted to re-render it. It looked like:
start cmd.exe /K mapcrafter.exe --config "config.config" --jobs 8
This worked great, when the batch file was in the same directory as the exe.
Anyways, what I don't know how to do is to:
Start command prompt
change directory (cd) to the folder containing the .exe
Run the .exe with the two (-c -j) parameters
I want to do all of this in one batch file, and I want it to keep the command prompt window open, since the .exe outputs errors and percent completion.
I'm lucky I was able to get the one-line batch file working, with my limited knowledge of batch. At this point, I'm out of ideas as to how I should approach this. Thank you in advance for any help you can offer!
Why don't you just create a batch file with
mapcrafter.exe --config "config.config" --jobs 8
The reason it doesn't work when it is not in the same directory is because your path variable doesn't have the location of mapcrafter. An easier way around would be to use full path something like
D:\MineCraft\mapcrafter.exe --config "config.config" --jobs 8
If you want to learn more about configuring PATH environment variable see
Adding directory to PATH Environment Variable in Windows
you could just make a shortcut of the .bat file and have that on your desktop or wherever you want it. here is Microsoft's support page on this http://support.microsoft.com/kb/140443

Resources