【发布时间】:2015-06-27 03:47:37
【问题描述】:
我正在编写一个执行命令行应用程序的脚本,该应用程序需要用户在运行时输入(遗憾的是没有提供命令行参数)。
所以我的第一次尝试是这样的:
@echo off
(echo N
echo %~dp0%SomeOther\Directory\
echo Y)|call "%~dp0%SomeDirectory\SadSoftware.exe"
乍一看,它看起来运行良好,但事实证明并非如此。经过调查,我发现我传递给软件的目录最后包含额外的空间,这导致了一些问题。
我看了一会儿,发现了以下问题: echo is adding space when used with a pipe.
这解释了发生了什么,但并没有真正帮助我解决我的问题(我对批处理编程不太熟悉)。
目前我用一个丑陋的解决方法“解决了”我的问题:
echo N> omg.txt
echo %~dp0%SomeOther\Directory\>> omg.txt
echo Y>> omg.txt
"%~dp0%SomeDirectory\SadSoftware.exe"<omg.txt
del omg.txt
此解决方案有效,但我对此不太满意。有没有更漂亮的方法?或者更丑的方式,但没有临时文件?
【问题讨论】:
标签: windows batch-file pipe echo