Войти

Показать полную графическую версию : [решено] Программа создающая пустые копии файлов и папок


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

a_axe
06-05-2016, 17:29
i-Lex, на ум приходит плагин к тоталу коммандеру DiskDir (http://wincmd.ru/plugring/diskdir_extended.html). Выделяете папки/файлы, жмете "архивировать" (оно же alt+f5), выбираете формат этого плагина (обычно .lst). Получаете архив-слепок.

i-Lex
06-05-2016, 17:59
a_axe, спасибо конечно, но не совсем то. Была мелкая программулина. Там было 2 поля и несколько кнопок.
Было крайне удобно.

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

Iska
07-05-2016, 08:30
Помню, была программка, которая делал "слепки" каталогов и файлов. Но сейчас не могу найти( »
Robocopy :).

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

Казбек
07-05-2016, 10:02
i-Lex,
How to create a text file list of the contents of a folder (https://support.microsoft.com/en-us/kb/196158)
How to Create a File List at a Command Prompt

How to Print or Save a Directory Listing to a File (http://www.howtogeek.com/98064/how-to-print-or-save-a-directory-listing-to-a-file/)

i-Lex
08-05-2016, 02:55
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:
Помню, была программка, которая делал "слепки" каталогов и файлов. Но сейчас не могу найти( »
Robocopy .
Код:
robocopy.exe "C:\Мои проекты\0006\Source" "C:\Мои проекты\0006\Destination" /mir /create /dcopy:t »
Та софтина была не консольная. Эта пустые копии файлов делает? Или полностью их копирует? Просто мне нужно сделать слепок огромных файлов. Я не хочу 20 гб копировать.
i-Lex, cmd/bat сценарий тут будет уместен. Например с помощью dir получаем содержимое для слепка, с помощью md в "слепке" создаём папку, с помощью перенаправленного echo - файл. »
А по подроьнее можно? Я совсем не силён в скриптах.

Iska
09-05-2016, 02:22
Эта пустые копии файлов делает? »
Да:


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

i-Lex
10-05-2016, 18:58
Iska, конечно, не совсем то (хочется гуя немного да кнопочек), но всё же работает) Спасибо!

Iska
10-05-2016, 22:52
хочется гуя немного да кнопочек »
Легион их — Robocopy GUI - Поиск в Google (https://www.google.ru/search?q=Robocopy+GUI), выбирайте по вкусу. Я не пользовался ни одним из них, советовать не стану.

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

Iska
30-03-2020, 01:39
есть список файлов »
В чём? Если текстовый файл — в каком виде (с полными путями, относительными путями, без путей — тогда как определить, в каком каталоге эти файлы), в какой кодировке, какие концы строк?

kero
30-03-2020, 21:25
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
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

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

просто интерисует как в пакетном файле выполнить такое. »
При использовании кодировки 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
Iska,
Спасибо




© OSzone.net 2001-2012