【问题标题】:Batch Script - Using Variable with SCP command批处理脚本 - 将变量与 SCP 命令一起使用
【发布时间】:2022-10-14 23:23:57
【问题描述】:

我有一个简单的批处理脚本,它使用 SCP 将文件 filename 传输到远程位置 destination

使用scp filename destination 工作得很好,但是添加变量var 不起作用。

代码sn-p:

set /p "var=filename"
echo %var%
echo scp "%var%" destination
scp "%var%" destination

结果:

filename
scp "" destination
: not a regular file

第二个echoscp 未使用或识别该变量。

在 echo 和 scp 中正确使用变量有什么遗漏吗?

注意:代码 sn-p 在 if 语句中

解决方案: 需要使用delayexpansion,并使用!var!而不是%var%

见这里:windows batch SET inside IF not working

【问题讨论】:

  • Set /P 提示输入。当filename 出现在您的屏幕上时,您应该输入它,然后按[ENTER] 键。从您发布的内容来看,很明显您只是按下了[ENTER] 键。

标签: windows batch-file scp


【解决方案1】:

您发布的sn-p没有问题。
但是,如果这些行在带括号的代码块内,这些行将按照您描述的方式失败。
如果是这种情况,那么您必须更改代码以使用延迟扩展。
有关详细信息和文档,请参阅 setlocal/?set/?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2022-01-04
    • 2015-03-07
    相关资源
    最近更新 更多