首页 > 解决方案 > 如何从命令提示符批处理文件向 WSL 传递参数?

问题描述

我正在尝试制作一个执行以下操作的批处理文件:

  1. cd 到我计算机中的特定目录。
  2. 输入 WSL Ubuntu。
  3. 运行带有一些参数的二进制文件。
  4. 关闭命令提示符终端。

我写了一个小测试批处理文件。它尝试执行指定的操作。唯一的问题是,一旦它打开 bash 终端(在同一个窗口中),它不会执行下一行,直到我手动“退出”WSL,然后尝试错误地运行“./PESQ”行(如它应该是)。

cd C:/users/jesus/desktop/source/audio
::desired path
bash
::this opens up an ubuntu terminal like session inside CMD
./PESQ
::this is the compiled file, besides, there are more arguments that need to be in that line, (+16000 speech.wav speech_bab_0dB.wav)
pause

运行代码时,我得到以下输出

C:\Users\jesus\Desktop\source\audio>bash jesusb@LAPTOP-08IGLCO1:/mnt/c/Users/jesus/Desktop/source/audio$

一旦我输入exit,我会得到以下输出

C:\Users\jesus\Desktop\source\audio>./PESQ
'.' is not recognized as an internal or external command, operable program or batch file.

C:\Users\jesus\Desktop\source\audio>pause
Press any key to continue . . .`

如何将./PESQ +16000 speech.wav speech_bab_0dB.wav命令发送给 bash 终端?

标签: batch-filewindows-10windows-subsystem-for-linux

解决方案


不要使用bash,而是wsl在批处理文件中使用命令:

wsl ./PESQ +16000 speech.wav speech_bab_0dB.wav

推荐阅读