【问题标题】:How to get disk details from cygwin for a non-english windows using diskpart如何使用 diskpart 从 cygwin 获取非英语窗口的磁盘详细信息
【发布时间】:2013-02-28 05:35:58
【问题描述】:

我有一个场景,其中有多种语言的 Windows 操作系统...我需要使用脚本获取磁盘详细信息,在 cygwin 中使用 diskpart .. 对于英语,我使用以下内容获取磁盘的详细信息

while :
do
    echo "rescan" > $wscript
    echo "list disk" >> $wscript
    disks=$($diskpart /s $wscript | tee ${logfile} | awk 'p{print $2}$1~/^---/{p=1}')
    disk=""
    if [ ! -z "$disks" ]; then
        > $wscript
        for disk in $disks
        do
            echo "select disk $disk" >> $wscript
            echo "detail disk" >> $wscript
        done
        disk=$($diskpart /s $wscript | awk '/is now the selected disk/ {disk=$2} /^Target/ {if ($3 == target) print disk}' target=$target)
    fi
done

'target' 是我将脚本作为输入的磁盘编号。但是当我使用非英语的 Windows 操作系统时,文本比较“/现在是选定的磁盘/”并不能正常工作,因为它使用的是不同的语言。有什么办法解决这个问题吗?

【问题讨论】:

    标签: windows bash shell awk cygwin


    【解决方案1】:

    尝试将环境变量LC_ALL 设置为C,这是标准语言环境。

    【讨论】:

    • export LC_ALL=C 不起作用 :( cygwin 中的语言环境更改为英语,但是当我在 cygwin 中运行 diskpart 时,结果仍然是原始的非英语语言
    • 只需将 LC_ALL=C 放在 shell 脚本的顶部即可。
    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2014-11-18
    • 2017-01-13
    • 2022-08-19
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多