Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Windows (http://forum.oszone.net/forumdisplay.php?f=7)
-   -   [решено] Программа создающая пустые копии файлов и папок (http://forum.oszone.net/showthread.php?t=314631)

i-Lex 06-05-2016 16:58 2632495

Программа создающая пустые копии файлов и папок
 
Нужно сделать так называемый "Слепок" папки с внутренностями.
Руками создавать папки и переименовывать коипровать название оригиналов - очень долго и нудно.
Помню, была программка, которая делал "слепки" каталогов и файлов. Но сейчас не могу найти(
Мож кто помнит?

a_axe 06-05-2016 17:29 2632502

i-Lex, на ум приходит плагин к тоталу коммандеру DiskDir. Выделяете папки/файлы, жмете "архивировать" (оно же alt+f5), выбираете формат этого плагина (обычно .lst). Получаете архив-слепок.

i-Lex 06-05-2016 17:59 2632511

a_axe, спасибо конечно, но не совсем то. Была мелкая программулина. Там было 2 поля и несколько кнопок.
Было крайне удобно.

NickM 07-05-2016 06:39 2632634

i-Lex, cmd/bat сценарий тут будет уместен. Например с помощью dir получаем содержимое для слепка, с помощью md в "слепке" создаём папку, с помощью перенаправленного echo - файл.

Iska 07-05-2016 08:30 2632652

Цитата:

Цитата i-Lex
Помню, была программка, которая делал "слепки" каталогов и файлов. Но сейчас не могу найти( »

Robocopy :).

Код:

robocopy.exe "C:\Мои проекты\0006\Source" "C:\Мои проекты\0006\Destination" /mir /create /dcopy:t

Казбек 07-05-2016 10:02 2632667

i-Lex,
How to create a text file list of the contents of a folder
How to Create a File List at a Command Prompt

How to Print or Save a Directory Listing to a File

i-Lex 08-05-2016 02:55 2632859

Цитата:

Цитата Казбек
i-Lex,
How to create a text file list of the contents of a folder
How to Create a File List at a Command Prompt
How to Print or Save a Directory Listing to a File »

Мне нужна папка с пустыми копиями файлов. Мне не нужно загонять структуру каталогов в файл. Таких тем и тут много.
Цитата:

Цитата Iska
Цитата i-Lex:
Помню, была программка, которая делал "слепки" каталогов и файлов. Но сейчас не могу найти( »
Robocopy .
Код:
robocopy.exe "C:\Мои проекты\0006\Source" "C:\Мои проекты\0006\Destination" /mir /create /dcopy:t »

Та софтина была не консольная. Эта пустые копии файлов делает? Или полностью их копирует? Просто мне нужно сделать слепок огромных файлов. Я не хочу 20 гб копировать.
Цитата:

Цитата NickM
i-Lex, cmd/bat сценарий тут будет уместен. Например с помощью dir получаем содержимое для слепка, с помощью md в "слепке" создаём папку, с помощью перенаправленного echo - файл. »

А по подроьнее можно? Я совсем не силён в скриптах.

Iska 09-05-2016 02:22 2633078

Цитата:

Цитата i-Lex
Эта пустые копии файлов делает? »

Да:
robocopy.exe /?

Код:


/MIR :: Создать зеркало дерева папок (эквивалентно /E  с /PURGE).
/CREATE :: Создать только дерево папок и файлы нулевой длины.
/DCOPY:T :: Копирование меток времени папки.


i-Lex 10-05-2016 18:58 2633622

Iska, конечно, не совсем то (хочется гуя немного да кнопочек), но всё же работает) Спасибо!

Iska 10-05-2016 22:52 2633704

Цитата:

Цитата i-Lex
хочется гуя немного да кнопочек »

Легион их — Robocopy GUI - Поиск в Google, выбирайте по вкусу. Я не пользовался ни одним из них, советовать не стану.

kero 29-03-2020 21:07 2915057

а неподскажете как:
есть список файлов , их следует заменить нулевым размером (изменить размер файла на 0 ) вместо удаления.

Iska 30-03-2020 01:39 2915067

Цитата:

Цитата kero
есть список файлов »

В чём? Если текстовый файл — в каком виде (с полными путями, относительными путями, без путей — тогда как определить, в каком каталоге эти файлы), в какой кодировке, какие концы строк?

kero 30-03-2020 21:25 2915166

Iska,
текстовый файл , чистые полные пути , один путь-одна строка , кодировка анси .
пример
"C:\11\aa aa\Catalog\06.cab"
"C:\11\aa aa\Catalog\07.cab"
"C:\11\aa aa\Catalog\01.cab"

возможно вы имели ввиду что должен быть задействован текстовый файл, так то не обязательно, пути могу подставить в батнике , , просто интерисует как в пакетном файле выполнить такое.

Iska 30-03-2020 23:54 2915173

kero, если ANSI — то лучше WSH:
Скрытый текст
Код:

Option Explicit

Dim strSourceFile

Dim objFSO
Dim strContent
Dim strLine


If WScript.Arguments.Count = 1 Then
        strSourceFile = WScript.Arguments.Item(0)
       
        Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
       
        If objFSO.FileExists(strSourceFile) Then
                With objFSO.OpenTextFile(strSourceFile)
                        strContent = .ReadAll()
                        .Close
                End With
               
                For Each strLine In Split(strContent, vbCrLf)
                        If objFSO.FileExists(strLine) Then
                                objFSO.CreateTextFile(strLine, True).Close
                        Else
                                WScript.Echo "Can't find file [" & strLine & "]."
                        End If
                Next
        Else
                WScript.Echo "Can't find source file [" & strSourceFile & "]."
                WScript.Quit 2
        End If
       
        Set objFSO = Nothing
Else
        WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
        WScript.Quit 1
End If

WScript.Quit 0


Кавычки в файле не нужны. Путь к целевому файлу с путями к файлам задаётся параметром скрипта (также можно просто перетащить целевой файл на скрипт в Проводнике).

Цитата:

Цитата kero
просто интерисует как в пакетном файле выполнить такое. »

При использовании кодировки OEM/866:
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
        if exist "%sSourceFile%" (
                for /f "usebackq delims=" %%i in ("%sSourceFile%") do (
                        if exist "%%~i" (
                                >nul copy /y nul "%%~i"
                        ) else (
                                echo Can't find file [%%~i].
                        )
                )
        ) else (
                echo Can't find source file [%sSourceFile%].
        )
) else (
        echo Usage: %~nx0 ^<Source file^>
)

endlocal
exit /b 0


Путь к целевому файлу с путями к файлам задаётся параметром пакетного файла (также можно просто перетащить целевой файл на пакетный файл в Проводнике).

kero 01-04-2020 23:44 2915497

Iska,
Спасибо


Время: 22:12.

Время: 22:12.
© OSzone.net 2001-