CMD/BAT - Выбор произвольной папки

Ответить
Аватара пользователя
XXXp

CMD/BAT - Выбор произвольной папки

Сообщение XXXp »

У меня есть код


Цитата:



@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

Re: CMD/BAT - Выбор произвольной папки

Сообщение Georgio »

Код PowerShell:

Код:

Код: Выделить всё

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

.
Аватара пользователя
XXXp

Re: CMD/BAT - Выбор произвольной папки

Сообщение XXXp »

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

Re: CMD/BAT - Выбор произвольной папки

Сообщение XXXp »

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

Re: CMD/BAT - Выбор произвольной папки

Сообщение XXXp »

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



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




Цитата:



@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

Re: CMD/BAT - Выбор произвольной папки

Сообщение Georgio »

Код:

Код: Выделить всё

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

Re: CMD/BAT - Выбор произвольной папки

Сообщение XXXp »

PowerShell ругается



Условие "Get Random" не распознано как командлет

и еще много чего, скопировать не получается, могу скрин вставить
Ответить

Вернуться в «Скриптовые языки администрирования Windows»