Shell 从FTP请求解释远程文件路径

Shell 从FTP请求解释远程文件路径,shell,powershell,ftp,cmd,Shell,Powershell,Ftp,Cmd,我有以下FTP请求,它被保存为CMD脚本。它起作用了。我想在PowerShell中编写一个FTP请求,执行相同的操作。为了使PowerShell脚本正常工作,我需要指定要获取的远程文件的地址 这是CMD脚本。从这里可以看出,文件路径是什么?仅供参考,如果这很重要:这是从AS400中提取的 @echo off setlocal set uname=USERNAME set passw=USERPASS set hostname=AS400NAME set filespec=

我有以下FTP请求,它被保存为CMD脚本。它起作用了。我想在PowerShell中编写一个FTP请求,执行相同的操作。为了使PowerShell脚本正常工作,我需要指定要获取的远程文件的地址

这是CMD脚本。从这里可以看出,文件路径是什么?仅供参考,如果这很重要:这是从AS400中提取的

@echo off
setlocal
set uname=USERNAME
    set passw=USERPASS
    set hostname=AS400NAME
    set filespec=SPECNAME
echo %uname%>                     TEST.ftp
echo %passw%>>                    TEST.ftp
echo cd DIRECTORYNAME>>           TEST.ftp
echo binary>>                     TEST.ftp
echo get %filespec%>>             TEST.ftp
echo bye>>                        TEST.ftp
ftp -s:TEST.ftp %hostname%
if errorlevel 1 pause
endlocal

您需要重新组合该脚本中的关键变量,以便在PowerShell中构建新字符串。我相信您在所提供的脚本中有所需的片段:

$uname = "USERNAME"
$passw = "USERPASS"
$hostname = "AS400NAME"
$filespec = "SPECNAME"
$dir = "DIRECTORYNAME"
您只需将它们组合在一起即可构建有效的FTP URI:

$uri = "ftp://$uname`:$passw@$hostname/$dir/$filespec"
在PowerShell中,用双引号括起来的字符串将在内部展开变量。与连续串联相比,它使字符串更清晰

最后一步是检索文件。我建议使用该类:


您需要重新组合该脚本中的关键变量,以便在PowerShell中构建新字符串。我相信您在所提供的脚本中有所需的片段:

$uname = "USERNAME"
$passw = "USERPASS"
$hostname = "AS400NAME"
$filespec = "SPECNAME"
$dir = "DIRECTORYNAME"
您只需将它们组合在一起即可构建有效的FTP URI:

$uri = "ftp://$uname`:$passw@$hostname/$dir/$filespec"
在PowerShell中,用双引号括起来的字符串将在内部展开变量。与连续串联相比,它使字符串更清晰

最后一步是检索文件。我建议使用该类:


+1、这个看起来不错。我在解析ftp地址时遇到问题。我会接受这个答案一旦完成,我看到这个解决方案的工作。嘿,谢谢。我接受了你的回答,因为它回答了我关于解释FTP请求的问题。如果你这么想,请看一个后续问题。+1,这看起来不错。我在解析ftp地址时遇到问题。我会接受这个答案一旦完成,我看到这个解决方案的工作。嘿,谢谢。我接受了你的回答,因为它回答了我关于解释FTP请求的问题。如果你有这种倾向,请看一个后续问题。