Скопируйте один и тот же файл в разные каталоги

Существует ли программа (или код для ReNamer или .cmd), которая скопирует файл readme.txt в каждый каталог в том же каталоге, что и readme.txt?

ReNamer: http://www.den4b.com/?x=products&product=renamer (существует правило PascalScript, которое позволяет пользователям программировать свои собственные правила переименования.)

Я ежедневно получаю с работы более 50 новых каталогов, всем им нужен этот файл внутри. Я сделал более 1000 вручную, я надеюсь, что есть решение для этого.

Спасибо!


person WHOMEZz    schedule 21.03.2013    source источник


Ответы (3)


Попробуйте это в пакетном сценарии:

@echo off &setlocal
set "startdir=X:\start\folder"
for /d /r "%startdir%" %%i in (*.*) do copy readme.txt "%%~i"
endlocal
person Endoro    schedule 21.03.2013
comment
Я сделал копию .bat с вашим содержимым, но это не сработало:code @echo off &setlocal set startdir=C:\Work_VideoClasses for /d /r %startdir% %%i in (.) скопируйте readme.txt %%~i endlocalcode - person WHOMEZz; 28.03.2013
comment
проверьте вывод этого тестового кода: @echo off &setlocal set "startdir=C:\Work_VideoClasses" for /d /r "%startdir%" %%i in (*.*) do echo copy readme.txt "%%~i" endlocal - person Endoro; 28.03.2013

@echo off
FOR /R %%f in (.) DO xcopy readme.txt %%f

Вы сохраняете файл .bat в том же месте, что и readme.txt, И подкаталоги должны находиться в той же папке, что и readme.txt: т.е.

Desktop
    readme.txt 
    name.bat
    Sub1
    Sub2
    Sub3

так далее....

person CodeMonkey    schedule 21.03.2013
comment
Я сделал copy.bat с предоставленным вами содержимым и сделал именно то, что вы сказали, но это не сработало: code @echo off FOR /R %%f in (.) DO xcopy readme.txt %%fcode - person WHOMEZz; 28.03.2013

Ниже приведен код PascalScript для ReNamer, который создаст Readme.txt< /em> в каждой обрабатываемой папке.

Сценарий выполняется во время предварительного просмотра, поэтому в целях безопасности он будет спрашивать вас, создавать ли Readme.txt каждый раз при предварительном просмотре. Этот скрипт использует константу ReadmeText для содержимого, но также можно сделать так, чтобы он копировал содержимое файла Readme.txt из файла в вашей системе. Будет создан файл Readme.txt, только если он еще не существует. Перетащите все свои папки в ReNamer и используйте этот скрипт.

const
  ReadmeName = 'Readme.txt';
  ReadmeText = 'Content of Readme file goes here!';
var
  Initialized: Boolean;
  ReadmePath: WideString;
  DoCreateReadmeFile: Boolean;
begin
  if not Initialized then
  begin
    Initialized := True;
    DoCreateReadmeFile := DialogYesNo('Create Readme file this time?');
  end;
  if WideDirectoryExists(FilePath) then
    ReadmePath := WideIncludeTrailingPathDelimiter(FilePath)
  else
    ReadmePath := WideExtractFilePath(FilePath);
  ReadmePath := ReadmePath + ReadmeName;
  if DoCreateReadmeFile and not WideFileExists(ReadmePath) then
    FileWriteContent(ReadmePath, ReadmeText);
end.

Редактировать

Сценарий ниже возьмет исходный файл, определенный SourceFilePath, и скопирует его в целевые папки. Он также предупредит вас, если исходный файл не существует.

const
  TargetFileName = 'Readme.txt';
  SourceFilePath = 'C:\Temp\Readme.txt';
var
  Initialized: Boolean;
  TargetFilePath: WideString;
  DoCreateFiles: Boolean;
begin
  if not Initialized then
  begin
    Initialized := True;
    if WideFileExists(SourceFilePath) then
      DoCreateFiles := WideDialogYesNo('Create "'+TargetFileName+'" files this time?')
    else
      WideShowMessage('Source file does not exist!'+#13#13+SourceFilePath);
  end;
  if WideDirectoryExists(FilePath) then
    TargetFilePath := WideIncludeTrailingPathDelimiter(FilePath)
  else
    TargetFilePath := WideExtractFilePath(FilePath);
  TargetFilePath := TargetFilePath + TargetFileName;
  if DoCreateFiles and not WideFileExists(TargetFilePath) then
    WideCopyFile(SourceFilePath, TargetFilePath, False);
end.
person dezlov    schedule 21.03.2013
comment
Большое спасибо, а как насчет других файлов? например JPG - было бы очень здорово, если бы вы могли указать путь к файлу и скопировать этот файл в каждый каталог, который вы загружаете в ReNamer. - person WHOMEZz; 28.03.2013
comment
@WHOMEZz Я отредактировал сообщение и добавил скрипт, который возьмет исходный файл, определенный SourceFilePath, и скопирует его в целевые папки. - person dezlov; 28.03.2013