在FTP.exe中使用PowerShell变量

时间:2014-12-15 16:53:44

标签: variables powershell

在运行程序时如何使用powershell变量?这根本不可能吗?

示例:

$url = "test.com"
ftp
ftp> open $url

Unknown host $url.

1 个答案:

答案 0 :(得分:4)

FTP命令将从文件中读取命令,因此您可以使用Powershell创建包含所需命令的文件,然后告诉命令从文件中读取。最好为临时文件创建一个唯一的名称,并记住在完成后删除它:

PS C:\> $url = "test.com"
PS C:\> $filename = "foo.bar"
PS C:\> $tempFile = [io.path]::GetTempFileName()
PS C:\> @"
>> open $url
>> get $filename
>> quit
>> "@ >>$tempFile
>>
PS C:\> cat $tempFile
open test.com
get foo.bar
quit
PS C:\> ftp -s:$tempFile
PS C:\> remove-item $tempFile

多行字符串@"..."@是为外部命令创建临时文件的好方法,因为它允许您以自然的方式编写命令。

其他命令可能不接受来自文件的输入。在这种情况下,值得检查是否可以在命令行上指定所有需要的命令。许多非Powershell命令实际上会接受多行参数,即使从cmd.exe运行时也无法传递这些参数。例如:

PS C:\python34> python -c @"
>> for i in range(10):
>>    print(i)
>> "@
>>
0
1
2
3
4
5
6
7
8
9
PS C:\python34>