Solved

Robocopy only files with no extension?

Posted on 2009-05-09
14
3,268 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 30

Expert Comment

by:Wayne Barron
Comment Utility
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
Comment Utility
This looks like a unix command.  I don't see the -type switch available for the Windows find command.
0
 
LVL 30

Expert Comment

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

Carrzkiss
0
 
LVL 47

Assisted Solution

by:dbrunton
dbrunton earned 150 total points
Comment Utility
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 175 total points
Comment Utility
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
Comment Utility
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 47

Expert Comment

by:dbrunton
Comment Utility
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
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 4

Expert Comment

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

Expert Comment

by:t0t0
Comment Utility
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 175 total points
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

This article was inspired by a question here at Experts Exchange (http://www.experts-exchange.com/Software/Photos_Graphics/Images_and_Photos/Q_28629170.html). The requirements stated in that question are (1) reduce the file size of a large number of…
How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

763 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now