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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование файла в другие папки (http://forum.oszone.net/showthread.php?t=349881)

v.k.l.chr.by 27-10-2021 17:31 2969880

Копирование файла в другие папки
 
Добрый день. Столкнулся с такой проблемой, нужно скопировать файл с заменой из одной папки в другие, отличающие последними символами. Например: надо скопировать файл 1.txt на диск D в папки от user1 до user200.Скрипт у меня получился, но не до конца.
Код:


@echo off
XCopy c:\Skripts\1.txt /y D:\ggg\user*.*\*.*

Думаю, что нужно после user поставить...Буду благодарен за подсказки.

megaloman 27-10-2021 23:31 2969905

При условии, что папки существуют
Код:

@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 2969939

Powershell:
Код:

1..200 |% {if (test-path ($f = "D:\ggg\user$_")) {cp "c:\Skripts\1.txt" "$f"}}

alpap 28-10-2021 16:13 2969983

DJ Mogarych, дополню, а если папок будет более чем 200, удобнее будет так:
PowerShell
Код:

$file    = 'file.txt'
$folders = 'Dir\user*'

(gci $folders -ad).FullName.foreach{cpi $file $_}



Время: 23:44.

Время: 23:44.
© OSzone.net 2001-