none
微软windows2012 powershell 和 diskpart 的集成问题 RRS feed

  • 问题

  • 我们都知道, 我们可以用 "diskpart /s script.txt" (scrip.txt 里面有文本“list disk”) 来检查windows的disk 信息。

    当我手动创建 script1.txt, 然后在里面输入 list disk 后, 再执行 diskpart /s script1.txt 能正确显示disk信息

    然而当我在powershell里(注意是powershell,不是cmd),输入 echo "list disk" >c:\script2.txt,然后再执行 diskpart /s c:\script2.txt 就无法正确显示disk信息了
    我检查 手动创建的script.txt 和 用echo 重定向的 script2.txt , 里面内容完全一样, 但是为什么就一个可以被diskpart使用, 而另一个不能呢?? 我应该在powershell 下用什么方式生成file 才能被diskpart 使用呢?
    2014年1月3日 9:25

答案

  • CMD/PowerShell 文本重定向所生成的文本文件是采用Unicode编码的,而diskpart使用的文本编码为UTF8,这是命令运行失败的原因。因此,建议使用notepad script.txt创建diskpart可执行的脚本文件。
    2014年1月3日 15:39

全部回复

  • CMD/PowerShell 文本重定向所生成的文本文件是采用Unicode编码的,而diskpart使用的文本编码为UTF8,这是命令运行失败的原因。因此,建议使用notepad script.txt创建diskpart可执行的脚本文件。
    2014年1月3日 15:39
  • Very professional answer,   thanks very much  !!
    2014年1月6日 7:01
  • CMD/PowerShell 文本重定向所生成的文本文件是采用Unicode编码的,而diskpart使用的文本编码为UTF8,这是命令运行失败的原因。因此,建议使用notepad script.txt创建diskpart可执行的脚本文件。
    Thanks for sharing!
    2014年1月15日 6:37
  • 在PowerShell中,使用Out-File cmdlet可以实现编码的转换。例如:

     “list disk” | Out-File -Append -Encoding ascii -FilePath .\script.txt

    diskpart.exe /s script.txt

    这样,命令就可以成功执行了。

    2014年1月22日 5:22
  • 在PowerShell中,使用Out-File cmdlet可以实现编码的转换。例如:

     “list disk” | Out-File -Append -Encoding ascii -FilePath .\script.txt

    diskpart.exe /s script.txt

    这样,命令就可以成功执行了。

    精益求精!收藏了!
    2014年1月22日 5:33