windows - 为什么在子 shell 中运行 winrs 会改变它相对于它使用的用户的行为?
问题描述
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 的脚本中运行,可以提供正确的行为。
为什么会发生这种情况,我该如何解决?
解决方案
推荐阅读
- javascript - 如何将由 AJAX 检索到的 JSON 格式的字符串转换为类似格式的表格
- actionscript-3 - ios中的Adobe air全屏
- jquery - smarty 全局 url 调用 jquery 但 $ 未定义
- python-3.x - org.apache.spark.SparkException:作业因阶段失败而中止
- r - 如何配置未来以下载更多文件?
- apache - 断言来自聚合报告 Jmeter 的结果
- java - Java中的垃圾邮件/评论验证?
- java - 使用 FileReader read() 和 BufferedReader readLine() 计算文件的行数和字符的问题
- bash - 通过 shell 脚本执行命令时出现 Awk 语法错误,但是从 Linux bash shell 执行命令时可以正常工作
- vue.js - v-for 循环中使用的方法不返回值