[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Robocopy only files with no extension?

Posted on 2009-05-09
14
Medium Priority
?
3,850 Views
Last Modified: 2012-08-14
I need to move only files with specified extensions from one drive to another while preserving tree structure.  No problem, I know how to do that with Robocopy.

But I also need to move only files that have no extension.  I can't figure out how to specify files with no extension.  I've tried every combination of include *. and exclude *.*  in the robocopy command line that I can think of, but haven't found a way to copy ONLY files with no extension.

This despite the fact that the command
dir *.
very nicely lists only files without extensions.

I'm trying to reduce the size of a data collection, presently at 600GB and 2.2 million files by moving out file types I don't need to index, because my indexing tool (x1) is grinding to a halt at about 1.2 million files.

If this can't be done with robocopy, I'd appreciate pointers to a utility which can.  I'd also be open to a utility which could rename all files without extensions from *. to *.noext and could do so all the way thru a huge directory tree.  

Thanks!

Frank
0
Comment
Question by:fdenman
  • 5
  • 3
  • 2
  • +3
14 Comments
 
LVL 31

Expert Comment

by:Wayne Barron
ID: 24346776
Found this (Untested)
Last post
https://www.computing.net/answers/unix/find-file-with-no-extension/2810.html
=============================
find mydir -type f ! -name "*.*"
=============================
This will find the files (Have not tested it)

If this works, you will just need to find a way to implement it into a move function.
I am not sure if Robocopy can do this.

Carrzkiss
0
 
LVL 1

Author Comment

by:fdenman
ID: 24346822
This looks like a unix command.  I don't see the -type switch available for the Windows find command.
0
 
LVL 31

Expert Comment

by:Wayne Barron
ID: 24346852
I cannot seem to find anything on it.
Sorry that I was unable to help more.

Carrzkiss
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 50

Assisted Solution

by:dbrunton
dbrunton earned 600 total points
ID: 24346882
Very interesting.  Just been playing with robocopy.  Yes it does not work as it should.

Try Ztree http://www.ztree.com/

You can see all of the files in a directory tree with this - not just the folder - and it will show all of the files that have no extension.  You can filter the files you want to see.  It does understand *.

You could use Ztree to do all of the copying for you - Ztree can take the folders across for you - or you could get it to mark the files with no extension with an extension such as zzzzzzzz.  Get robocopy to copy it across and then at the other end use Ztree to remove the zzzzzzz extension.
0
 
LVL 14

Accepted Solution

by:
BigBadWolf_000 earned 700 total points
ID: 24347059
The script below will process and rename files with no extensions to *.noext (in subdirectories as well)
Save in notepad as filename.bat
Change the D:\zzz to your root folder or drive
Once done you can use robocopy

@echo off
set SourceFolder=D:\zzz
for /f "delims=" %%a in ('dir /a:-d /b /s "%SourceFolder%\*."') do ren "%%a" "%%~na.noext"

Open in new window

0
 
LVL 1

Author Comment

by:fdenman
ID: 24347355
I think Drs. Brunton & Wolf have each offered an excellent solution.  I plan to split the points as soon as I can confirm that these work as expected.  I have left Dr Wolf's bat file running overnight on my tree with 2.2 million files.  I'm hoping it will be finished when I wake up.

Does anybody have a feel for the relative speed of ZTree versus Dr Wolf's bat file?

0
 
LVL 50

Expert Comment

by:dbrunton
ID: 24347389
That's hard to say.

Ztree can handle millions of files.  As the website says memory is the only problem.  Dr Wolf's solution can be set to run and walk away.  

With ZTree you'll have to wait until it loads all of the files and that may take time.  On my system it takes about 30 seconds to load 100,000 files.  Your system may differ.  There's a 30 day evaluation version to try out.  Once it's loaded it's easy enough to filter the files and apply.
0
 
LVL 4

Expert Comment

by:althakar
ID: 24347415
just give extension name to it.. transfer the file and rename it back to previous one
0
 
LVL 16

Expert Comment

by:t0t0
ID: 24347875
You can test for files without extensions using %%~x as in the following example (this merely displays the filenames on the screen):

for /f "tokens=*" %%a in ('dir /a-d /b *.*') do (
    if "%%~xa"=="" echo %%~na
)
0
 
LVL 16

Assisted Solution

by:t0t0
t0t0 earned 700 total points
ID: 24347879
if you want to give those files an extension say '.EXT. then you would do this in a batch file:

for /f "tokens=*" %%a in ('dir /a-d /b *.*') do (
    if "%%~xa"=="" ren "%%a" "%%~na.EXT"
)


Or to just move them:

for /f "tokens=*" %%a in ('dir /a-d /b *.*') do (
    if "%%~xa"=="" move "%%a" c:\windows\temp
)
0
 
LVL 16

Expert Comment

by:t0t0
ID: 24347894
If you want to rename AND move them say, to '.EXT', then you need this:

for /f "tokens=*" %%a in ('dir /a-d /b *.*') do (
    if "%%~xa"=="" (
        ren "%%a" "%%~na.EXT"
        move "%%a.EXT" c:\windows\temp
    )
)


or you can do the whole thing in a single rename/move operation as in:

for /f "tokens=*" %%a in ('dir /a-d /b *.*') do (
    if "%%~xa"=="" (
        move /y "%%a" "c:\windows\temp\%%~na.EXT"
    )
)
0
 
LVL 1

Author Comment

by:fdenman
ID: 24348931
I think Drs. Brunton & Wolf have each offered an excellent solution.  I plan to split the points as soon as I can confirm that these work as expected.  I have left Dr Wolf's bat file running overnight on my tree with 2.2 million files.  I'm hoping it will be finished when I wake up.

Does anybody have a feel for the relative speed of ZTree versus Dr Wolf's bat file?

0
 
LVL 16

Expert Comment

by:t0t0
ID: 24348962
If all you want to do is rename ALL file in the current directory and ALL sub-directories then the following command will do the job.

    for /f "tokens=*" %a in ('dir /a-d /b /s *.*') do @if "%~xa"=="" @ren "%a" "%~na.noext"
0
 
LVL 16

Expert Comment

by:t0t0
ID: 24348990
dbrunton

Nice to see ZTree get a mention.... I remember playing with XTree version 1.0 (Was written in French) when it first appeared.
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
This article provides a convenient collection of links to Microsoft provided Security Patches for operating systems that have reached their End of Life support cycle. Included operating systems covered by this article are Windows XP,  Windows Server…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
As many of you are aware about Scanpst.exe utility which is owned by Microsoft itself to repair inaccessible or damaged PST files, but the question is do you really think Scanpst.exe is capable to repair all sorts of PST related corruption issues?
Suggested Courses
Course of the Month18 days, 21 hours left to enroll

834 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question