Windows 10 에서 diskpart 스크립트 실행

무아   
   조회 5099   추천 0    

 파워쉘에서 diskpart 의 스크립트 기능을 써보려고 하는데 잘 안되네요.

아래 그림처럼 각각 라인 단위로는 잘 동작합니다.


스크립트로 동작시켜 보려고 아래처럼 했더니 예상과 다르게 됩니다.




test.txt 에 넣어놓은 스크립트는 아래와 같습니다.




그런데 이게 windows7 에서는 스크립트가 잘동작하는 걸 봐선 windows 10에서 뭔가 문제가 있는 건지 뭔가 놓치고 있는 건지..

안되네요. 

왜 그럴까요??

diskpart /s r:\test.txt 

이렇게 스크립트 파일 경로를 지정해도 똑같습니다.


...
짧은글 일수록 신중하게.
dateno1 2021-04
7/8/10 심지어는 XP에서도 똑같은 방식으로 잘 먹었습니다
     
무아 2021-04
스크립트 파일의 앤코딩 문제였습니다.
답변 감사합니다.
김제연 2021-04
전 잘됩니다.
PS C:\test> diskpart /s test.txt

Microsoft DiskPart 버전 10.0.19041.610

Copyright (C) Microsoft Corporation.
컴퓨터: DESKTOP-5D53OFO

  디스크 ###  상태          크기    사용 가능    Dyn  Gpt
  ----------  -------------  -------  ------------  ---  ---
  디스크 0    온라인        657 GB      1024 KB        *
  디스크 1    온라인        698 GB      1002 MB        *
  디스크 2    온라인        111 GB          0 B        *
  디스크 3    온라인      4092 MB      1984 KB
  디스크 7    온라인        300 GB          0 B        *
PS C:\test>
     
무아 2021-04
답변 감사합니다. 원인은 스크립트 파일의 엔코딩 문제 였네요.
스크립트 파일을 생성하는 프로그램이 UTF-8 with BOM 형식으로 스크립트 파일을 만들었네요.
UTF-8 또는 DOS 로 변경해주니 잘 됩니다.
          
화정큐삼 2021-04
그렇네요. 메모장에서 UTF-8 LE 에서 UTF-8로 인코딩을 바꾸니까 먹힙니다.^^

PS C:\test> diskpart /s c:\test\test.txt

Microsoft DiskPart 버전 10.0.19041.610

Copyright (C) Microsoft Corporation.
컴퓨터: MSI-H97M-G43

0 볼륨이 선택한 볼륨입니다.

현재 파일 시스템

  형식                : NTFS
  할당 단위 크기: 4096
  플래그 : 00000000

형식이 지원되는 파일 시스템

  형식                : NTFS (기본값)
  할당 단위 크기: 4096 (기본값), 8192, 16K, 32K, 64K, 128K, 256K, 512K, 1024K, 2048K
               
김제연 2021-04
아 .. 그런 문제가 ..
전 copy con test.txt로 만들어서 ..
윤하쨔응 2021-04
전 UAC때문인진 모르겠는데 명령어 동일하게 입력했을 땐 diskpart 창이 떴다 꺼져버리네요.
     
무아 2021-04
관리자 권한으로 실행하지 않으면 권한을 변경할 것이냐 창이 뜨는데 UAC로 막아뒀다면 바로 꺼지는게 맞을 겁니다.
화정큐삼 2021-04
저도 안먹네요....
PS C:\test> diskpart /s c:\test\test.txt

Microsoft DiskPart 버전 10.0.19041.610

Copyright (C) Microsoft Corporation.
컴퓨터: MSI-H97M-G43
PS C:\test>
무아 2021-04
c# 으로 스크립트 파일을 만드는데 c# 묘한 버그스러운 것이 있었네요.  (버그라기 보단 모르면 삽질하게 만드는...)

==========
따라서 BOM 을 검색하여 지워주는 방법도 있지만,
C# 에서는 BOM 을 처음부터 마킹하지 않게 하는 간단한 방법이 있다.
using( var _sw = new StreamWriter( new FileStream( path ), Encoding.UTF8 ) ){
  ...
}

위와 같이 사용하던 인코딩 정의 부분을 아래와 같이 바꾸어주면 된다. 아주 간단하다....
using( var _sw = new StreamWriter( new FileStream( path ), new UTF8Encoding( false ) ) ){
  ...
}

출처: https://flystone.tistory.com/131 [MomO]


QnA
제목Page 2485/5727
2014-05   5250735   정은준1
2015-12   1775833   백메가
2016-07   5024   izegtob
2020-12   5024   장동건2014
2019-04   5024   김건우
2019-11   5024   이방인
2017-02   5024   쿠쿠다스
2020-04   5024   민지파파
2013-10   5024   victor
2015-08   5024   Goldentooth
2019-05   5024   bradpig
2007-11   5024   전근현
2017-05   5024   vmware2cpu
2016-09   5024   정은준1
2008-08   5024   선우균
2017-08   5025   바부팅이
2006-09   5025   하상필
2016-04   5025   여주이상돈
2020-04   5025   highend
2016-02   5025   Christopher
2008-10   5025   김현종
2007-10   5025   신유호