Компьютерный форум 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=298543)

XXXp 17-04-2015 19:26 2497231

Выбор произвольной папки
 
У меня есть код
Цитата:

@echo off
setlocal

for /f "tokens=*" %%i in (' dir /b "z:\Work\ready-profiles\*.ini" ') do call:1 "%%i"
for /f "tokens=2 delims==" %%i in (' set ini_ ') do set "file=%%i"

copy /y "z:\Work\ready-profiles\%file%.ini" "Z:\Work\old\%file%.ini"
copy /y "z:\Work\ready-profiles\%file%.conf" "Z:\Work\old\%file%.conf"


goto:eof

:1
set "ini_%random%=%~n1"
который копирует произвольные файлы (одинаково называющиеся) .ini и .conf из папки z:\Work\ready-profiles\

Хотел попросить Вас подсказать, как усложнить этот код, чтобы в папке z:\Work\ready-profiles\ еще бралась подпапка произвольная (от 1 до 6), т.е. сначала рандомно выбираем подпапку z:\Work\ready-profiles\1 или z:\Work\ready-profiles\4 (1, 2, 3, 4, 5, 6 - варианты), а уже в ней делалось действо по выбору и копированию рандомных файлов %file%.ini и %file%.conf

Спасибо большое!

Georgio 19-04-2015 03:38 2497691

Код PowerShell:
Код:

($n=gci ('Z:\Work\ready-profiles\'+(1..6|Get-Random)+'\*.ini')|Get-Random),($n -replace '\.ini$','.conf')|%{cpi $_ 'Z:\Work\old' -Force}
.

XXXp 19-04-2015 11:09 2497759

Georgio, спасибо огромное, а как совместить Ваш код с предыдущим?

Georgio 19-04-2015 12:46 2497804

XXXp, вот на всякий случай "перевод" Вашего кода:
Код:

($m=gci 'Z_\Work\ready-profiles\*.ini'|Get-Random),($m -replace '\.ini$','.conf')|%{cpi $_ 'Z_\Work\old' -Force}
.

А "совмещение" -- это, как я понял, копирование одной случайной пары файлов или непосредственно из папки, или из случайной подпапки:
Код:

($n=(gci 'Z_\Work\ready-profiles\*.ini'),(1..6|%{gci ('Z_\Work\ready-profiles\'+$_+'\*.ini')})|Get-Random),($n -replace '\.ini$','.conf')|%{cpi $_ 'Z_\Work\old' -Force}
.

XXXp 20-04-2015 01:36 2498135

Спасибо большое!

А как этот код перевести, когда конечное имя файла задано.

Цитата:

@echo off
setlocal

for /f "tokens=*" %%i in (' dir /b "z:\Work\ready-profiles\*.ini" ') do call:1 "%%i"
for /f "tokens=2 delims==" %%i in (' set ini_ ') do set "file=%%i"

copy /y "z:\Work\ready-profiles\%file%.ini" "c:\1.ini"
copy /y "z:\Work\ready-profiles\%file%.conf" "C:\firefox\profile\modifyheaders.conf"

goto:eof

:1
set "ini_%random%=%~n1"

Georgio 21-04-2015 03:50 2498528

Код:

cpi ($m=gci 'Z:\Work\ready-profiles\*.ini'|Get-Random) 'C:\1.ini' -Force
cpi ($m -replace '\.ini$','.conf') 'C:\firefox\profile\modifyheaders.conf' -Force


XXXp 22-04-2015 02:40 2499005

PowerShell ругается

Условие "Get Random" не распознано как командлет
и еще много чего, скопировать не получается, могу скрин вставить


Время: 21:27.

Время: 21:27.
© OSzone.net 2001-