2017-10-16 13 views
0

안녕하십니까,한 FTP 폴더의 파일을 동일한 FTP의 다른 폴더로 이동하는 배치 파일?

저는 FTP 사이트에서 파일을 다운로드하고 파일을 SQL로 처리 한 다음 FTP 사이트의 파일을 다른 폴더로 옮기는 작업이 필요합니다. 동일한 FTP 사이트에 있습니다.

처음 두 부분은 다운되었지만 FTP의 파일을 동일한 FTP의 다른 폴더로 옮기는 부분이 나를 위로하고 있습니다.

누구든지 조언을 해주실 수 있습니까?

이 내가 현재 가지고있는 것입니다 :

@Echo Off 
Set _FTPServerName=SERVER HERE 
Set _UserName=LOGIN HERE 
Set _Password=PASSWORD HERE 
Set _RemoteFolder=FILES FROM 
Set _NewRemoteFolder=FILES TO 
Set _Filename=*.* 
Set _ScriptFile=ftp1 

:: Create script 
"%_ScriptFile%" Echo open %_FTPServerName% 
"%_ScriptFile%" Echo %_UserName% 
"%_ScriptFile%" Echo %_Password% 
"%_ScriptFile%" Echo cd %_RemoteFolder% 
"%_ScriptFile%" prompt 

:: Run script 
ftp -s:"%_ScriptFile%" 
Del "%_ScriptFile%" 

당신이 추가 문의 사항이 있으면 알려 주시기 바랍니다!

+0

클라이언트의 OS 및 FTP 호스트의 OS는 무엇입니까? – lit

+0

@lit 클라이언트가 Windows 10이고 FTP 호스트가 Windows Server 2012입니다. –

+0

이동 명령이 없습니다. 파일을 다운로드 한 다음 다른 폴더에 업로드해야합니다. – Squashman

답변

2

윈도우 ftp.exe 명령 줄 클라이언트 rename command있다 : 특정 배치 파일에 따라서

rename oldname newname 

:

"%_ScriptFile%" echo rename file.txt %_NewRemoteFolder%/file.txt 

_Filename=*.*을보고 있지만 난 귀하의 질문에, 그것은 실제로 당신이 모든 파일을 이동하려는 것처럼 보입니다. Windows ftp.exe에서는 불가능하지 않습니다. rename 명령은 와일드 카드를 지원하지 않습니다.

각 파일에 대해 별도의 rename 명령을 사용하여 다운로드 한 파일 목록을 기반으로 스크립트 파일을 동적으로 생성해야합니다.


또는/이름 바꾸기 이동할 때 와일드 카드를 지원하는 다른 FTP 클라이언트 명령 줄을 사용합니다. 자세한 내용은

winscp.com /log=winscp.log /command^
    "open ftp://username:[email protected]"^
    "cd %_RemoteFolder%"^
    "mv *.* %_NewRemoteFolder%/"^
    "exit" 

참조 :

(I 저자 해요

WinSCP scripting와 예를 들어, 배치 파일은 같은 것 WinSCP의)

0

이 문제를 해결하는 가장 직접적인 방법은 PowerShell을 사용하는 것입니다. 이렇게하면 서버에 다시 쓰여지기 전에 클라이언트에 데이터를 보내지 않아도 FTP 호스트에서 파일 복사가 수행됩니다.

Invoke-Command -ComputerName FTPHOST -ScriptBlock { Move-Item -Path C:\dir1\thefile.txt -Destination C:\dir2\thefile.txt } 

cmd.exe 셸에서 실행할 수 있습니다.

powershell -NoProfile -Command "Invoke-Command -ComputerName FTPHOST -ScriptBlock { Move-Item -Path C:\dir1\thefile.txt -Destination C:\dir2\thefile.txt }" 
+0

안녕하세요. @lit 답장을 보내 주셔서 감사합니다. PowerShell이 ​​미리 설치되어 있거나 설치 및 구성해야 할 사항인지 알고 있습니까? –

+0

또한 제공 한 코드가 배치 파일 내에서 실행 가능합니까? –

+0

PowerShell은 Windows 10 및 Server 2012에 사전 설치되어 제공됩니다. PowerShell 원격을 구성해야 할 수도 있습니다. – lit