test.bat
@echo off
for /f "delims=" %%i in ('winrs /r:REMOTE_MACHINE /u:DIFF_USER_ACCOUNT /p:PASS /noprofile "echo %PYTHONPATH%"') do set dest_dir=%%i
echo %dest_dir%
该脚本旨在远程进入REMOTE_MACHINE
并打印出PYTHONPATH
env var 的内容。我故意通过/noprofile
开关,因为我不想REMOTE_MACHINE
使用我的帐户(也存在于盒子上)访问,这是winrs
.
最终发生的是脚本执行并远程REMOTE_MACHINE
使用我的用户帐户,而不是DIFF_USER_ACCOUNT
指定的。我确定这一点的方式是因为PYTHONPATH
两个帐户之间的差异。
我还创建了一个新的环境变量,它只存在于DIFF_USER_ACCOUNT
并且批处理脚本无法访问它。
在 shell 中运行相同的命令'winrs /r:REMOTE_MACHINE /u:DIFF_USER_ACCOUNT /p:PASS /noprofile "echo %PYTHONPATH%"'
,或者只在没有子 shell 的脚本中运行,可以提供正确的行为。
为什么会发生这种情况,我该如何解决?