使用 Plink 和 PSCP 进行交互
Interate Using Plink and PSCP
我正在尝试迭代到各种不同的 Linux 服务器并将 .cer 文件 scp 到 windows 计算机。我需要根据返回的 var 创建一个文件夹,然后将文件 scp 到该位置。
For /F 循环似乎有问题,它正在创建每个文件夹,但它只是将 scp 复制到变量的第一个赋值。即所有文件都转到创建的第一个文件夹。
我是否需要每次都清除变量 - 我是批处理脚本的新手。感谢您的帮助。
REM @echo off
FOR /F %%A IN (addresses.txt) DO (
@echo %%A
FOR /F "tokens=* USEBACKQ" %%F IN (`plink -pw "password" "root@%%A" -m cmds.txt`) DO (
@echo %%F
SET var=%%F
mkdir c:\temp\certfiles\%%F
pscp -pw password -P 22 root@%%A:/Certificates/*.cer c:\temp\certfiles\%var%\
)
)
你需要了解Delayed Expansion因此,调用Delayedexpansion然后使用!var!代替 %var%;尽管再看一眼,由于 %%F 已分配给 var,因此在这种情况下您可以将 %var% 替换为 %%F。
我正在尝试迭代到各种不同的 Linux 服务器并将 .cer 文件 scp 到 windows 计算机。我需要根据返回的 var 创建一个文件夹,然后将文件 scp 到该位置。 For /F 循环似乎有问题,它正在创建每个文件夹,但它只是将 scp 复制到变量的第一个赋值。即所有文件都转到创建的第一个文件夹。 我是否需要每次都清除变量 - 我是批处理脚本的新手。感谢您的帮助。
REM @echo off
FOR /F %%A IN (addresses.txt) DO (
@echo %%A
FOR /F "tokens=* USEBACKQ" %%F IN (`plink -pw "password" "root@%%A" -m cmds.txt`) DO (
@echo %%F
SET var=%%F
mkdir c:\temp\certfiles\%%F
pscp -pw password -P 22 root@%%A:/Certificates/*.cer c:\temp\certfiles\%var%\
)
)
你需要了解Delayed Expansion因此,调用Delayedexpansion然后使用!var!代替 %var%;尽管再看一眼,由于 %%F 已分配给 var,因此在这种情况下您可以将 %var% 替换为 %%F。