0

現在、CMDファイルにバンドルされたFTPリクエストを呼び出すpowershellスクリプトがあります。

それは機能しますが、追跡するファイルが1つ少なくなるため、FTPリクエストをpowershellスクリプトに統合したいと考えています。

これまでのところ、これを試してみましたが、エラーが発生します(以下を参照)。

# run the command script to extract the file
#defines command to be run
$command = '
@echo off
setlocal
set uname=name
    set passw=pass
    set hostname=hstname
    set filespec=spec
echo %uname%>                     test.ftp
echo %passw%>>                    test.ftp
echo cd DIRNAME>>                    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
'
# runs command
iex $command

エラー:

Invoke-Expression : スプラッティング演算子 '@' を使用して式の変数を参照することはできません。「@echo」は、コマンドの引数としてのみ使用できます。式で変数を参照するには、'$echo' を使用します。Dir\File.ps1:32 char:4 + iex <<<< $command + CategoryInfo : ParserError: (echo:String) [Invoke-Expression]、ParseException + FullyQualifiedErrorId : SplattingNotPermitted、Microsoft.PowerShell.Commands.InvokeExpressionCommand

スクリプトを次のように変更しようとしました$echoが、次のエラーが発生します。

Invoke-Expression : 式またはステートメントに予期しないトークン 'off' があります。Dir\File.ps1:32 char:4 + iex <<<< $command + CategoryInfo : ParserError: (off:String) [Invoke-Expression]、ParseException + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand

4

1 に答える 1