将“dir”输出重定向到文件后编码不正确

2024-01-09

我在欧洲的 Windows cmd.exe 上运行此代码,并在这里使用我的语言的本地设置。所以我在目录名称中使用变音符号。

我尝试列出目录名称,它们显示正确。然后我将它们保存到文件中,但是当我在记事本中打开它时,变音符号不可读:例如,而不是Střední Čechy I have Stýednˇ ¬echy.

我做错了什么以及如何纠正?

@echo off
del directories.conf
FOR /F "delims=!" %%R IN ('dir * /b /a:d /o:n') DO (

 IF EXIST "%%R\scenery" ( 
  echo %%R
  echo %%R >> directories.conf
 ) ELSE (ECHO NOT INCLUDED %%R)

)
Echo Directory list created...
pause

尝试使用 /u 开关启动 cmd.exe。这将导致 cmd 以 UTF-16 写入。

您还需要使用以下命令切换到代码页 1250(ANSI 代表中欧)chcp 1250.

您可以在批处理脚本中执行此操作。我为你做了一个。结构是:

.\Jižní Morava
.\Jižní Morava\scenery
.\Pelhřimov
.\Pelhřimov\scenery
.\Nic moc výlet
.\Střední Čechy
.\Střední Čechy\scenery

和脚本:

@echo off

if _%1_==_main_ (
    call :main
) else (
    cmd /u /c "%0 main"
)
goto :eof

:main
    chcp 1250
    del directories.conf
    for /F "delims=!" %%R in ('dir * /b /a:d /o:n') do (
        if exist %%R\scenery (
            echo %%R
            echo %%R >> directories.conf
        ) else (
            echo not included: %%R
        )
    )
    echo Directory list created...
    pause
goto :eof

我也推荐你阅读安德鲁多顿的很好的答案 https://stackoverflow.com/a/17177904/835945相关问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将“dir”输出重定向到文件后编码不正确 的相关文章

  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 如何将大文件 (>1 GB) 的编码转换为 Windows 1252,而不出现内存不足异常?

    考虑 public static void ConvertFileToUnicode1252 string filePath Encoding srcEncoding try StreamReader fileStream new Stre
  • 批处理脚本 - 逐行读取

    我有一个日志文件 我需要逐行读入并将该行传送到下一个循环 首先 我在一个单独的文件中 grep 日志文件中的 主 字 如 错误 以保持其较小 现在我需要获取单独的文件并逐行读取它 每行都需要进入另一个循环 在这些循环中我 grep 日志并将
  • Python DNS服务器IP地址查询

    我正在尝试使用 python 获取 DNS 服务器 IP 地址 要在 Windows 命令提示符下执行此操作 我将使用 ipconfig 全部 如下所示 我想使用 python 脚本做同样的事情 有什么方法可以提取这些值吗 我成功提取了设备
  • 通过批处理文件自动化 cygwin

    长话短说 我们有多个服务器 我们每晚都在其上运行 perflog 监控 我的工作是将这些日志转换为 csv 格式并将它们发送到我的电子邮件 这一点已经通过前员工编写的 sh 脚本实现了自动化 我想要自动化的是在 perfmon 日志记录之后
  • 有效地将位图数组转换为视频

    使用 Jcodec 库 我成功地从 Bitmap 对象数组生成视频文件并将其存储在 Android 文件系统上 但是 那encoding时间太长了 我考虑过缩小每个位图以加快速度 但这似乎不起作用 尽管进行了广泛的研究 我还是很难找到有用的
  • 从 vbscript 获取 bat 中的错误级别

    我试图确定用户是否在 UAC 提示中单击 否 如果是 则不设置空端口 我将此脚本称为批处理文件 如果用户单击 否 我想退出该脚本 VB 脚本 选项显式 Main Sub Main Dim oShell objWMIService servS
  • Python + PostgreSQL + 奇怪的ascii = UTF8编码错误

    我有包含字符的 ascii 字符串 x80 代表欧元符号 gt gt gt print x80 当将包含该字符的字符串数据插入数据库时 我得到 psycopg2 DataError invalid byte sequence for enc
  • 为什么标签存在却提示“系统找不到指定的批次标签”?

    在 Windows XP 中运行批处理文件时 我发现随机出现的错误消息 系统找不到指定name of label的批次标签 标签当然存在 导致此错误的原因是什么 实际上 要实现这一点 你需要两个条件 批处理文件不得使用 CRLF 行结尾 您
  • Python cmd 模块命令别名

    我正在使用 cmd 模块在 Python 3 1 1 中制作命令行界面 有没有一种方法可以创建具有多个名称的命令 例如 退出 和 退出 或者这只是创建多个引用相同函数的命令的情况 是的 这只是创建多个引用相同函数的命令的情况 这很常见 为命
  • 一个批处理文件如何获取另一个批处理文件的退出代码?

    我有两个批处理文件 task bat and runtask bat The runtask batcalls task bat我想要runtask bat获取退出代码task bat到一个变量中 这怎么可能做到呢 任务 bat echo
  • 如何使用 youtube-dl 批量创建 youtube 下载器 gui

    这就是我目前所处的位置 cls echo off title youtube downloader downloader echo youtuber downloader pause cls echo please put the link
  • 在 C# 中对 PDF 进行 Base64 编码?

    有人可以提供一些有关如何执行此操作的说明吗 我可以对常规文本或字节数组执行此操作 但不知道如何处理 pdf 我要先将pdf填充到字节数组中吗 Use File ReadAllBytes http msdn microsoft com en
  • 输入编码:接受UTF-8

    我需要在 PowerShell 下获取本机应用程序的输出 问题是 输出是用 UTF 8 无 BOM 编码的 PowerShell 无法识别它 只是将那些时髦的 UTF 字符直接转换为 Unicode 我发现 PowerShell 有 Out
  • Windows / Powershell 将程序版本获取到变量中

    我很接近 但不在那儿 我可以通过 powershell 获取应用程序的版本 但它附带一堆文本 这个命令 powershell NoLogo NoProfile Command get item Path c myapp exe Versio
  • 完美批量转发参数

    我有一个小的 python 脚本 args py import sys print sys argv 我怎样才能写一个 bat将所有参数转发给该脚本的包装文件 为了从测试中消除我的 shell 我将调用它 import subprocess
  • 使用标准用户帐户在提升的脚本中获取登录用户名

    在 Windows 7 中运行的批处理脚本中 我有几个 IF 子句 例如 IF USERNAME foo GOTO bar 不幸的是 当我运行这个批处理脚本时 用 以管理员身份运行 从上下文菜单中 USERNAME 始终是管理员的用户名 而
  • 如何在命令提示符中仅显示具有备用数据流的文件

    我知道要在命令提示符中显示所有文件 如果有 的备用数据流 这是命令dir R 但是 如果我只想显示具有备用数据流的文件 该怎么办 dir s r findstr e DATA or dir r findstr e DATA 第一个将在所有子
  • 创建一个批处理文件来打开 Firefox,然后运行一个宏(等待它完成),然后运行另一个宏

    我在尝试着 1 加载火狐浏览器 2 运行 Iopus Imacro iim 等待完成 然后 3 运行下一个宏 到目前为止 我已经尝试过 start wait call 以及我在互联网上可以找到的许多其他建议 这就是我到目前为止所拥有的 运行
  • 批处理命令在Notepad++中打开某种类型的所有文件

    我有以下批处理命令来打开文件dtd扩大 REM Open all the static content files C Program Files x86 Notepad notepad exe D data folder1 File1 d

随机推荐