윈 도 우 cmd 에서 copy 할때 이런것도 하는 방법있나요
2022.12.16 16:58
1번폴더에 있는 a.txt 파일을 2번폴더 복사할때 a.txt 가있으면 복사할때 a1.txt 으로 복사하고 같은 파일이 또 있으면 파일이름뒤 숫자 늘려가는 명령어 있나요
고수님들 부탁드립니다
댓글 [6]
-
zerojiddu 2022.12.16 17:36 -
와로 2022.12.17 14:01
$i += 으로 하는거군요
파워쉘에선 어떻게 하나 궁금했는데 감사합니다!
-
슈머슈마 2022.12.16 17:43
@echo off
if not exist "2\a.txt" copy 1\a.txt 2\a.txt&exit
:check
set /a i+=1
if exist "2\a%i%.txt" goto:check
copy 1\a.txt 2\a%i%.txt
-_- 고급 알고리즘은 다른분이
2번 폴더에 a.txt 최초 복사 그후 a1.txt, a2.txt 순차적으로 번호 붙여 복사
똑같은 건데 구조만 바꾼것
@echo off
:check
set /a i+=1
if not exist "2\a.txt" (
copy 1\a.txt 2\a.txt
) else (
if exist "2\a%i%.txt" goto:check
copy 1\a.txt 2\a%i%.txt
)
-
지후빠 2022.12.16 21:07
- for 순환문에서도 사용할 수 있게 서브 프로시져로 뺐습니다.^^
@echo off
call :copy "1\a.txt" "2\"
exit /b
:copy
set i=
:cloop
if exist "%~2%~n1%i%%~x1" (set /a i+=1 & goto cloop) else copy %1 "%~2%~n1%i%%~x1" & exit /b
-
슈머슈마 2022.12.18 11:58
지후빠님은 역시 능력자 시네요.
편하게 사용 할수 있겠네요. 이렇게도 되는구나 했네요.
-
dragon517 2022.12.17 20:19
답글 주신 분들 감사합니다.
잘사용 하겠습니다.
눈이 많이 오네요
다들 감기 .빙판길 조심하세요
cmd는 다른 분이 알려주실거고,
파워쉘에선 이렇습니다.
$SourceFile = (get-ChildItem $env:onedrive\*.ps1)[0]
$DestFile = "F:\Convert-FileSize.ps1"
If (Test-Path $DestFile -pathType Any)
{
$i = 0
While (Test-Path $DestFile -pathType Any)
{
$i += 1
$DestFile = "F:\Convert-FileSize$i.ps1"
}
}
Else {
New-Item -ItemType File -Path $DestFile -Force -ver
}
Copy-Item -Path $SourceFile -Destination $DestFile -Force -PassThru