萝卜L

导航

统计

命令行 command line cmd 尝试 新建、自定义 文件描述符

  • echo 是什么?命令或位于MinGWcygwin的程序(echo.exe)?(无Windows\System32\echo.exeWindows\SysWow64\echo.exe之类的)
  • 使用 where echo 可(从当前目录和PATH环境变量指定的路径的中)查询文件位置。
  • echo 123 >&3 将命令的标准输出(文件符号1)重定向到文件符号3。相当于 echo 123 1>&3 。
  • echo 123 >3 在当前工作目录(默认,C:\Users\用户名)下生成了新文件3(如,C:\Users\用户名\3test)。
  • 初始包含了0、1、2、3个文件符号。0是stdin,只读echo 123 >&0 报错系统无法写入指定的设备。 echo 123 >&4 报错重定向句柄 1 时,无法复制此句柄。
  •  echo <&1 ~ echo <&3 ,由于文件符号1~3内容为空,故,相当于执行了无参数的 echo ,输出ECHO 处于打开状态
  •  echo <&4 报错重定向句柄 0 时,无法复制此句柄。,相当于默认指定了标准输入(stdin)的文件符号 echo 0<&4 。
  •  mkfifo 没有测试成功——通过 mkfifo myfifo 建立后(,会在工作目录建立同名的快捷方式,属性中含如:\0:c4:11b6备注),不知道如何使用(貌似直接按文件访问?但新建的文件名为myfifio.lnk,且不是全局有效,更换目录、工作文件夹后无法就地访问此文件)。(尝试了 cmd 4<&myfifo 报错此时不应有 4<&,尝试 cmd 4<myfifo 报错系统找不到指定的文件
  • 以上的问题在于没有新打开文件关联文件描述符。不如直接使用 > 或 >> 及 <或 <<写入读取文件。
  • windows缺少*nix的 exec 。
  • 尝试了Windows功能 - 适用于Linxu的Windows子系统(Windows Subsystem for Linux),需要额外(从应用市场)安装Lunix系统等等。
  • windows不支持process substitution
  • 结论,ffmpeg的stderr只能在stderr(2)或stdout(1)二选一。
    最终 os.execute"ffmpeg .. 2>&1 | tee log >&2" 
  • 参考
    cmd additional file descriptor - Google 搜索
    using exec in windows cmd - Google 搜索
    mkfifo windows - Google 搜索

posted on   萝卜L  阅读(608)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示