命令行&和&&

时间:2012-06-13 17:32:48

标签: windows file-io command-line batch-file

所以我目前正在尝试做的是,远程登录到其他服务器,启动计划任务,退出,更改到桌面上的指定文件夹,写入文件

我的代码目前看起来像

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} ..

2 个答案:

答案 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}}附加到文件。