相关疑难解决方法(0)

批处理脚本重定向语法

有一天我用批处理脚本示例写了一个答案,有人指出,当您将输出重定向到文件时,如果您先重定向到文件,然后将您的命令、文本等(以下示例[1])。

该建议并未提及您不想这样做的任何原因,因此我开始进行一些调查,因为我一直在寻找本机方法以使事情看起来更干净一些。


常见方式示​​例

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO Some Text Here>>"%tmpfile%"
ECHO A little more text here>>"%tmpfile%"
ECHO Some other text over here man>>"%tmpfile%"
ECHO Can Scooby please have a Scooby snack>>"%tmpfile%"
Run Code Online (Sandbox Code Playgroud)

示例更容易阅读方式

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO>>"%tmpfile%" Some Text Here
ECHO>>"%tmpfile%" A little more text here
ECHO>>"%tmpfile%" Some other text over here man
ECHO>>"%tmpfile%" Can Scooby please have a Scooby snack
Run Code Online (Sandbox Code Playgroud)

显然,使用这种格式的命令从批处理脚本中读取逻辑要容易得多,ECHO但是如果在批处理脚本中使用这种方法作为标准存在任何问题,就会引起关注。

我在互联网上环顾四周,我能找到的最多的是下面引用的一个来源,声明不要在还包含其他重定向的命令行中使用此技术[2]


题 …

command-line batch-file

5
推荐指数
1
解决办法
545
查看次数

将 ECHO 输出写入 VBS 文件不起作用

我正在编写一个批处理脚本,它通过回显每一行并将输出定向到创建的文件来创建 VB 脚本。除了获取命令行变量并将其用作 VBS 变量的两行之外,它在大多数情况下都有效。这是代码:

ECHO:strHomeFolder = oShell.ExpandEnvironmentStrings^(^"^%USERPROFILE^%^"^) >> uninstallBeta.vbs
ECHO:strProgramData = oShell.ExpandEnvironmentStrings^(^"^%ProgramData^%^"^) >> uninstallBeta.vbs
Run Code Online (Sandbox Code Playgroud)

它在 VB 脚本中应该是这样的:

strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
strProgramData = oShell.ExpandEnvironmentStrings("%ProgramData%")
Run Code Online (Sandbox Code Playgroud)

但会发生什么是批处理脚本,它只是回应整行,包括>> uninstallBeta.vbs. 知道为什么会这样吗?我有类似的行来创建其他 VBS 和批处理脚本,我认为这样做很好。我检查了拼写错误,没有发现。它在命令提示符中运行良好,但在批处理脚本中不起作用。

batch command-line writing vbscript echo

4
推荐指数
1
解决办法
1547
查看次数

Windows:如何通过管道传递 cd 和 where 命令

在 Windows 控制台中

  1. 通过where命令,我将在以下位置找到一个文件%PATH
    where cmd->C:\Windows\System32\cmd.exe
  2. 有了上面的结果,我就会搬到那里

我试过...

  • 在谷歌中搜索
  • cd %(...
  • where <F> | cd

我认为...

  • where命令返回目录和文件名
  • 那么,有没有什么命令可以只返回目录呢?
  • 如果是的话,如何通过管道传输哪个cd命令
  • 或者,我需要一些脚本吗?

windows command-line

4
推荐指数
1
解决办法
1379
查看次数

标签 统计

command-line ×3

batch ×1

batch-file ×1

echo ×1

vbscript ×1

windows ×1

writing ×1