PDA

Показать полную графическую версию : Выбор произвольной папки


XXXp
17-04-2015, 19:26
У меня есть код
@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
Код 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
Georgio, спасибо огромное, а как совместить Ваш код с предыдущим?

Georgio
19-04-2015, 12:46
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
Спасибо большое!

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

@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
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
PowerShell ругается

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




© OSzone.net 2001-2012