programing

파일을 복사하고 이름을 바꿀 수 있는 단일 PowerShell 명령이 있습니까?

topblog 2023. 8. 6. 09:06
반응형

파일을 복사하고 이름을 바꿀 수 있는 단일 PowerShell 명령이 있습니까?

다음 명령을 사용하여 CSV 파일을 기반으로 네트워크 공유에서 로컬 하드 드라이브로 파일을 복사합니다.

import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\'}

다음 단계에서는 다른 CSV 파일을 사용하여 현재 파일 이름을 기준으로 파일 이름을 변경합니다.

복사 및 항목과 이름을 변경할 수 있는 명령어가 있습니까?

두 개의 열(이전 파일 경로 및 새 파일 이름)이 포함된 CSV가 있는 경우 다음을 사용할 수 있습니다.

Import-Csv C:\test.csv | % { Copy-Item -Path $_.oldfilepath -Destination "C:\TEST\$($_.newfilename)" }

사용 방법에 주목하십시오.$_.newfilename내부에 캡슐화되어 있습니다.$()그것은$_.newfilename변수에서 속성을 가져오므로 변수가 아닌 식입니다.$()에서는 PowerShell에서 식을 문자열에 사용하기 전에 이 식을 해결하도록 지시합니다.만약 우리가 그것을 사용하지 않는다면, 그것은 그 행에 대한 전체 csv-object를 사용했을 것입니다.$_)를 문자열로 지정하고 오류를 반환했습니다.

원래 CSV에도 새 이름이 있으면 이 이름을 사용하여 복사 경로 끝에 파일 이름을 지정할 수 있습니다.복사 항목 CMDlet을 사용하여 대상 파일 이름을 지정할 수 있습니다.

Copy-Item C:\TEST\file1.jpg C:\TEST\file2.jpg

file1.jpg를 복사하고 file2.jpg로 이름을 변경합니다.

변수를 경로 문자열 끝에 연결하려면 다음과 같은 큰따옴표를 사용합니다.

Copy-Item C:\Path\To\File\file.ext "C:\Path\To\New\File\$newfilename"

-path 및 -destination은 위치에 의해 암시되므로 실제로 필요하지 않습니다.

$file을 사용하여 소스를 복사하는 것이 좋습니다.전체 이름을 지정하고 $file에 대해 기억합니다.폴더가 아닌 경우 -Destination 매개 변수에 포함된 확장입니다.

$file = Get-ChildItem -Path . -Name "name"
Copy-Item -Path $file.FullName -Destination "$($new_name)$($file.Extention)"

언급URL : https://stackoverflow.com/questions/14432033/is-there-a-single-powershell-command-to-copy-and-rename-files

반응형