Показать полную графическую версию : Копирование файла в другие папки
v.k.l.chr.by
27-10-2021, 17:31
Добрый день. Столкнулся с такой проблемой, нужно скопировать файл с заменой из одной папки в другие, отличающие последними символами. Например: надо скопировать файл 1.txt на диск D в папки от user1 до user200.Скрипт у меня получился, но не до конца.
@echo off
XCopy c:\Skripts\1.txt /y D:\ggg\user*.*\*.*
Думаю, что нужно после user поставить...Буду благодарен за подсказки.
megaloman
27-10-2021, 23:31
При условии, что папки существуют@Echo Off
Set "FName=Z:\Box_In\1.txt"
Set "BoxOut=Z:\Box_Out
Set "BoxName=User*.*"
For /F "usebackq delims=" %%d In (`2^>nul Dir "%Boxout%\%BoxName%" /B /A:D`) Do (
>nul Copy "%FName%" "%Boxout%\%%d\"
)
Exit /B
Воэможно применение xcopy >nul XCopy /Y /D "%FName%" "%Boxout%\%%d\"
После префикса (здесь User) возможны любые корректные символы. Кроме того, маска папок может быть более развитая.
Если, как Вы просили, надо скопировать файл 1.txt ... в папки от user1 до user200, то это возможно даже при отсутствии папок - они создадутся:@Echo Off
Set "FName=Z:\Box_In\1.txt"
Set "BoxOut=Z:\Box_Out
Set "BoxName=User"
Set /A N1=1, N2=200
For /L %%i In (%N1%,1,%N2%) Do >nul Xcopy /Y /D "%FName%" "%BoxOut%\%BoxName%%%i\"
Exit /B
Имена и пути пропишИте свои.
DJ Mogarych
28-10-2021, 10:50
Powershell:
1..200 |% {if (test-path ($f = "D:\ggg\user$_")) {cp "c:\Skripts\1.txt" "$f"}}
DJ Mogarych, дополню, а если папок будет более чем 200, удобнее будет так:
PowerShell
$file = 'file.txt'
$folders = 'Dir\user*'
(gci $folders -ad).FullName.foreach{cpi $file $_}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.