我有一个 .bat 脚本,其中包含与此类似的 ftp 命令(全部合二为一)。请参阅第 5 项:FTP - 解析环境变量 - 在运行时动态创建 FTP 脚本并在 FTP 脚本中使用变量
当我从命令行运行 .bat 时,一切正常。这些文件(在我的情况下)从服务器传输到我的计算机。
但是,当我通过双击运行相同的 .bat 文件时,它不再正确解释 ftp 脚本。
如果双击与从命令行调用所有其他 .bat 文件,它们似乎工作相同。这在这里行不通吗?如果是这样,为什么不呢?
编辑:
问题似乎是当它到达第一个使用变量的 ftp 命令时。
例如,它会打开并正常连接,但是我的下一个命令是带有文件名变量的 get。它似乎无法读取变量名,只能调用 get。但是,当我从 cmd 行调用 bat 时,我没有看到这个问题....
编辑
问题已修复,请参阅下面的答案。
谢谢你。
解答:
我的变量是在 for 循环之前声明的,该循环将 ftp 命令保存在临时文件中,然后用值替换变量。因此,此时没有变量可以替换 ftp 脚本中使用的变量。
它看起来只是在命令行中工作,因为一旦我第一次调用它,它可能会出错,但如果我在不关闭控制台的情况下再次调用它,变量现在存储在内存中。从那里看起来它总是在控制台上工作。
一旦它们存储在内存中,for 循环位于变量之前就不再重要了。第一次打开后,变量现在存储在内存中。
双击时,每次都会打开第一个会话,自动关闭后内存中的变量被删除。所以在这种情况下,每次我双击它时,它都会打开和关闭。
打开第一个会话与在同一控制台中再次调用它而不关闭它是这里的主要区别。第一次调用它时,变量将在创建 ftp 脚本之后保存。
如果您可以使其更清楚,请随时编辑...
归档时间: |
|
查看次数: |
6955 次 |
最近记录: |