Reputation: 1
Example, have files file1.txt, file2.txt and file3.txt in one folder. Want to copy each file into its own folder, eg, file1.txt goes into file1 folder, file2.txt goes into file2 folder. The folders have already been created.
Upvotes: 0
Views: 1639
Reputation: 168
Assuming the files are all in C:\oldfolder and new folders are in C:\newfolders\
CD "C:\OLDFOLDER"
for %%a in (*.*) Do copy "%%a" "C:\newfolder\%%~na\%%a"
The for loop loops through all the files in oldfolder, and then copies each one to
C:\Newfolder\{filenamewithoutextension}\{filename.ext}
The %%~na is a way to get just the filename without the extension. The "n" signifies "name" and the a is the for loop variable. The are many file-path substitutions possible:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
%~$PATH:I - searches the directories listed in the PATH
environment variable and expands %I to the
fully qualified name of the first one found.
If the environment variable name is not
defined or the file is not found by the
search, then this modifier expands to the
empty string
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
%~fsI - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
environment variable for %I and expands to the
drive letter and path of the first one found.
%~ftzaI - expands %I to a DIR like output line
Upvotes: 1
Reputation: 412
In Linux you could type
for i in *.txt; do mv $i `basename $i .txt`/; done
Pay attention to the spaces.
Upvotes: 0