cmd.exe 行为异常。无法再识别桌面

cmd.exe 行为异常。无法再识别桌面

我试图将 tracert 命令添加到 .bat 文件中。

在 cmd.exe 中我写道:

tracert 111.111.111.111 > desktop\tracert.txt

并且运行正常。我创建了一个如下的 bat 文件:

::@echo off
Cd C:\
cls
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
::2013_04_20__13_01_47
::tracert 111.111.111.111 > desktop\Tracert_IP1_%datetimef%.txt
tracert 111.111.111.111 > desktop\tracert.txt

想法是将数据添加到文件名中,我也想将其写入tracert.txt中,但我不知道如何操作。

代码结果:

C:\>echo 20/04/2013
20/04/2013

C:\>echo 14:18:12,44
14:18:12,44

C:\>set datetimef=2013_04_20__14_18_12

C:\>echo 2013_04_20__14_18_12
2013_04_20__14_18_12

**C:\>tracert 111.111.111.111  1>desktop\tracert.txt**
**The system cannot find the path specified**

为什么要在“>”前添加“1”,并删除“>”和“desktop”之间的空格?

无论如何,我尝试tracert直接在 cmd 上再次运行该命令,但现在它给出了与 bat 文件相同的错误消息: The system cannot find the path specified

编辑 1:好吧,找不到路径的问题是因为我使用“cd”命令更改了 cmd 路径,然后桌面文件夹就找不到了!我很尴尬!对不起大家……感谢你们关于“1”和空格消失的回复。

答案1

您知道的位置desktop是用户配置文件中具有相同名称的子文件夹。如果您的批处理文件存储在桌面上,则只需删除desktop\输出部分即可。当您运行cmd其基本目录时,它是您的根用户配置文件目录,该目录下有您的桌面文件夹。如果您创建批处理文件并运行它,那么工作的基本目录cmd目录而不是您的用户配置文件。

如果您希望批处理文件始终输出到桌面,而不管它存储在何处,那么环境中有一个指向您的配置文件目录()的cmd变量,并且可以与之结合使用以将文件输出到桌面。USERPROFILEC:\Users\yourUserName\desktop

你有

tracert 111.111.111.111 > desktop\tracert.txt

替换为

tracert 111.111.111.111 > %USERPROFILE%\desktop\tracert.txt

答案2

在这种情况下,“桌面”是相对路径。您应该更改为正确的文件夹(“cd”命令)或将输出文件的完整路径放入 .bat 文件中。

答案3

1>是 STDOUT,而不是 STDERR,2>

我认为空格只是一个语法问题,cmd.exe 不喜欢空格,所以它会改变它。

参见微软命令重定向页面以了解更多信息。

对于未找到的错误,我的第一个建议是检查该目录中的权限。

PS:不再是 Win 用户,但是“桌面”是访问桌面的有效方式吗,或者它是一个目录名?

相关内容