Trouble with renaming folders and sub folders usin

2019-01-01 01:12发布

问题:

So I\'m trying to set up a template file structure for projects that can be modified in name to suit each project. I have created the example directory containing example folders i.e. \"Template project\" contains \"template hardware\" , \"template software\" etc. , and have a simple batch program that copies the \"template project\" folder and all contained subfolders, however I would like to change the word \'template\' with what ever I choose to call the project. I was wondering if this is possible to do? Ideally I could just edit the batch file with the name of the project and then run it to copy the template and rename it.

Any help is greatly appreciated!

回答1:

To start learning type help at the command prompt. Then anything on that list add /? for more help.

Set /p NewName=Enter project name

md \"c:\\somewhere\\%newname%project\\%newname% software
md \"c:\\somewhere\\%newname%project\\%newname% hardware

or use xcopy (and use/l to have it do a test without copying)

xcopy \"c:\\tempate\" \"d:\\%newname%\" /e /h /q /i /c 

See set /?, md /?, and xcopy /?. Type just set to see a list of variables.

&    seperates commands on a line.

&&    executes this command only if previous command\'s errorlevel is 0.

||    (not used above) executes this command only if previous command\'s errorlevel is NOT 0

>    output to a file

>>    append output to a file

<    input from a file

|    output of one command into the input of another command

^    escapes any of the above, including itself, if needed to be passed to a program

\"    parameters with spaces must be enclosed in quotes

+ used with copy to concatinate files. E.G. copy file1+file2 newfile

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,

%variablename% a inbuilt or user set environmental variable

!variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile\'s name.

%* (%*) the entire command line.

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.

\\\\ (\\\\servername\\sharename\\folder\\file.ext) access files and folders via UNC naming.

: (win.ini:streamname) accesses an alternative steam. Also separates drive from rest of path.

. (win.ini) the LAST dot in a file path seperates the name from extension

. (dir .\\*.txt) the current directory

.. (cd ..) the parent directory


\\\\?\\ (\\\\?\\c:\\windows\\win.ini) When a file path is prefixed with \\\\?\\ filename checks are turned off. 

< > : \" / \\ | Reserved characters. May not be used in filenames.



Reserved names. These refer to devices eg, 

copy filename con 

which copies a file to the console window.

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, 

COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, 

LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

CONIN$, CONOUT$, CONERR$


Maximum path length              260 characters
Maximum path length (\\\\?\\)      32,767 characters (approx - some rare characters use 2 characters of storage)
Maximum filename length        255 characters

Starting a Program
===============

See start /? and call /? for help on all three ways.

Specify a program name
--------------------------------

    c:\\windows\\notepad.exe

In a batch file the batch will wait for the program to exit. When
typed the command prompt does not wait for graphical
programs to exit.

If the program is a batch file control is transferred and the rest of the calling batch file is not executed.

Use Start command
--------------------------

    start \"\" c:\\windows\\notepad.exe

Start starts a program and does not wait. Console programs start in a new window. Using the /b switch forces console programs into the same window, which negates the main purpose of Start.

Start uses the Windows graphical shell - same as typing in WinKey + R (Run dialog). Try 

    start shell:cache

Use Call command
-------------------------

Call is used to start batch files and wait for them to exit and continue the current batch file.

.
--