Войти

Показать полную графическую версию : [решено] Как пронумеровать, (.bat) кодом скопированные файлы (Desktop.ini)


ufooo
17-05-2015, 12:42
Как, (.bat) кодом пронумеровать скопированные файлы, чтобы они не копировались, и не заменяли друг друга. А например велось нумерация одинаковых файлов.
Например: desktop.ini, desktop.ini-1,desktop.ini-2, desktop.ini-3 и. т. д.
@echo off
Md %USERPROFILE%\Desktop\Temporary
setlocal enableextensions enabledelayedexpansion
(
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "delims=" %%a in ('2^>nul dir/a-d/b/s "%%i:\Desktop.ini"') do (
>nul xcopy/hkry "%%a" "%USERPROFILE%\Desktop\Temporary\"&& (
echo The file is found and copied to "Desktop_ini".& pause>nul& endlocal& exit/b 0
)
)
)
)|| (echo The file is not found.& pause>nul& endlocal& exit/b 1)

Georgio
17-05-2015, 21:48
Например: desktop.ini, desktop.ini-1,desktop.ini-2, desktop.ini-3 и. т. д. »





Ну это как-то "негуманно" по отношению к расширению файла, давайте лучше так: "desktop.ini", "desktop[1].ini", "desktop[2].ini", "desktop[3].ini" и т. д.



Код пакетного файла:


@echo off

set "my_file=desktop.ini"
set "my_folder=%USERPROFILE%\Desktop\Temporary"

2>nul md "%my_folder%"

setlocal
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
for /f "delims=" %%j in ('
2^>nul dir/a-d/b/s "%%i:\%my_file%"
') do (
if not defined count (
set name=%%~nxj
) else (
call set name=%%~nj[%%count%%]%%~xj
)
echo f| >nul cmd/v/c xcopy/hkry "%%j" "%my_folder%\!name!"&& (
echo "%%j" is found and copied to "%my_folder%".
echo.
set/a count+=1
)
)
)
if not defined count (
echo The file is not found.
)
pause>nul
endlocal

exit/b 0


.

ufooo
18-05-2015, 00:58
Код работает-спасибо.
давайте лучше так: "desktop.ini", "desktop[1].ini", "desktop[2].ini", desktop[3].ini" и т. д. »
Я так и думал.




© OSzone.net 2001-2012