所以我目前正在尝试做的是,远程登录到其他服务器,启动计划任务,退出,更改到桌面上的指定文件夹,写入文件
我的代码目前看起来像
C:MyOriginalFolder> psexec \\MYREMOTESERVER -u MYUSERNAME cmd
C:MYREMOTESERVER> SCHTASK.......
C:MYREMOTESERVER> exit & cd C:\\Users\ce132d & echo "Logged off" > MyLog.txt
//expected: the folder C:\\Users\ce132d should have a text file called MyLog.txt
//what happens: I end up in C:MyOriginalFolder with no MyLog.txt file created
当我删除& s并按命令测试命令时,所有都是花花公子并且预期的行为发生。但是当他们与&联系在一起时和&&,预期的行为不会发生。
所以我的问题是:是否有某种方法可以单独退出,更改目录和编写文本文件? 我最终将检查登录到远程服务器是否成功,并希望将这3个操作放入if(成功登录){do 3 tasks} else {write error log} ..
答案 0 :(得分:1)
您发送远程服务器exit & cd C:\\Users\ce132d & echo "Logged off" > MyLog.txt
为什么期望cd ...
对本地目录有任何影响?
当您逐行发送命令时,exit
将退出远程服务器上下文,然后您又在本地计算机上,因此其余命令按预期工作。
答案 1 :(得分:0)
在运行任何命令之前,> MyLog.txt
正在评估cd
,包括> C:\Users\ce132d\MyLog.txt
。您可以改为使用>>
。
您还可以使用>
代替{{1}}附加到文件。