Closed GeoffHilton closed 3 years ago
Thanks for your feedback. But this is not possible. Because this application saves the settings in its own format, includes all the available parameters.
Here is the sample .ezy file
<ChoAppSettings>
<MaxStatusMsgSize>1000</MaxStatusMsgSize>
<SourceDirectory>C:\Temp\MS</SourceDirectory>
<DestDirectory>C:\Temp\MS1 </DestDirectory>
<RoboCopyFilePath>RoboCopy.exe</RoboCopyFilePath>
<Files>*.*</Files>
<CopyNoEmptySubDirectories>false</CopyNoEmptySubDirectories>
<CopySubDirectories>true</CopySubDirectories>
<OnlyCopyNLevels>0</OnlyCopyNLevels>
<CopyFilesRestartableMode>false</CopyFilesRestartableMode>
<CopyFilesBackupMode>false</CopyFilesBackupMode>
<FallbackCopyFilesMode>false</FallbackCopyFilesMode>
<UnbufferredIOCopy>false</UnbufferredIOCopy>
<EncrptFileEFSRawMode>false</EncrptFileEFSRawMode>
<CopyFlags />
<CopyDirTimestamp>false</CopyDirTimestamp>
<CopyFilesWithSecurity>false</CopyFilesWithSecurity>
<CopyFilesWithFileInfo>false</CopyFilesWithFileInfo>
<CopyFilesWithNoFileInfo>false</CopyFilesWithNoFileInfo>
<FixFileSecurityOnFiles>false</FixFileSecurityOnFiles>
<FixFileTimeOnFiles>false</FixFileTimeOnFiles>
<DelDestFileDirIfNotExistsInSource>false</DelDestFileDirIfNotExistsInSource>
<MirrorDirTree>false</MirrorDirTree>
<MoveFiles>false</MoveFiles>
<MoveFilesNDirs>false</MoveFilesNDirs>
<AddFileAttributes />
<RemoveFileAttributes />
<CreateDirTree>false</CreateDirTree>
<CreateFATFileNames>false</CreateFATFileNames>
<TurnOffLongPath>false</TurnOffLongPath>
<RunAgainWithNoChangesSeen>0</RunAgainWithNoChangesSeen>
<RunAgainWithChangesSeenInMin>0</RunAgainWithChangesSeenInMin>
<RunHourStartTimeTicks>0</RunHourStartTimeTicks>
<RunHourEndTimeTicks>0</RunHourEndTimeTicks>
<CheckRunHourPerFileBasis>false</CheckRunHourPerFileBasis>
<InterPacketGapInMS>0</InterPacketGapInMS>
<CopySymbolicLinks>false</CopySymbolicLinks>
<MultithreadCopy>8</MultithreadCopy>
<CopyNODirInfo>false</CopyNODirInfo>
<CopyWithoutWindowsCopyOffload>false</CopyWithoutWindowsCopyOffload>
<CopyOnlyFilesWithArchiveAttributes>false</CopyOnlyFilesWithArchiveAttributes>
<CopyOnlyFilesWithArchiveAttributesAndReset>false</CopyOnlyFilesWithArchiveAttributesAndReset>
<ExcludeChangedFiles>false</ExcludeChangedFiles>
<ExcludeNewerFiles>false</ExcludeNewerFiles>
<ExcludeOlderFiles>false</ExcludeOlderFiles>
<ExcludeExtraFilesAndDirs>false</ExcludeExtraFilesAndDirs>
<ExcludeLonelyFilesAndDirs>false</ExcludeLonelyFilesAndDirs>
<IncludeSameFiles>false</IncludeSameFiles>
<IncludeTweakedFiles>false</IncludeTweakedFiles>
<ExcludeFilesBiggerThanNBytes>0</ExcludeFilesBiggerThanNBytes>
<ExcludeFilesSmallerThanNBytes>0</ExcludeFilesSmallerThanNBytes>
<ExcludeFilesOlderThanNDays>0</ExcludeFilesOlderThanNDays>
<ExcludeFilesNewerThanNDays>0</ExcludeFilesNewerThanNDays>
<ExcludeFilesUnusedSinceNDays>0</ExcludeFilesUnusedSinceNDays>
<ExcludeFilesUsedSinceNDays>0</ExcludeFilesUsedSinceNDays>
<ExcludeJunctionPoints>false</ExcludeJunctionPoints>
<AssumeFATFileTimes>false</AssumeFATFileTimes>
<CompensateOneHourDSTTimeDiff>false</CompensateOneHourDSTTimeDiff>
<ExcludeJunctionPointsForDirs>false</ExcludeJunctionPointsForDirs>
<ExcludeJunctionPointsForFiles>false</ExcludeJunctionPointsForFiles>
<NoOfRetries>1000000</NoOfRetries>
<WaitTimeBetweenRetries>30</WaitTimeBetweenRetries>
<SaveRetrySettingsToRegistry>false</SaveRetrySettingsToRegistry>
<WaitForSharenames>false</WaitForSharenames>
<ListOnly>false</ListOnly>
<ReportExtraFiles>false</ReportExtraFiles>
<VerboseOutput>false</VerboseOutput>
<IncludeSourceFileTimestamp>false</IncludeSourceFileTimestamp>
<IncludeFullPathName>false</IncludeFullPathName>
<PrintByteSizes>false</PrintByteSizes>
<NoFileSizeLog>false</NoFileSizeLog>
<NoFileClassLog>false</NoFileClassLog>
<NoFileNameLog>false</NoFileNameLog>
<NoDirListLog>false</NoDirListLog>
<NoProgress>false</NoProgress>
<ShowEstTimeOfArrival>false</ShowEstTimeOfArrival>
<NoJobHeader>false</NoJobHeader>
<NoJobSummary>false</NoJobSummary>
</ChoAppSettings>
As referenced on CodeProject by Galatei, if the program got its state ("settings") by reading the first line of a .cmd file, checking if it's an execution of robocopy and translating the arguments into ChoEazyCopy program state for the source and destination paths as well as the property grid of options, this would:
1) Remove OS bloat (the .ezy file extension program association) 2) Replace input and output files, currently .ezy settings files, with .cmd files which are useful outside of ChoEazyCopy.
I also agree with Galatei that having a console mode for ChoEazyCopy is redundant given robocopy is already a console-only program. Considering one of the purposes of robocopy is to provide faster copying than standard command-line copy or windows copy/cut and pasting, having a console-mode ChoEazyCopy can only slow file processing as robocopy output gets piped through ChoEazyCopy before ending in a console window anyway.
Simplicity can be good, and I believe these simplifications to ChoEazyCopy would result in a much more useful program.
Speaking for myself, I think I would only use ChoEazyCopy to get comfortable with robocopy in the first place, but if ChoEazyCopy read and output .cmd files, this would give me a reason to actually keep it.