2014-11-20 5 views
1

Я пытаюсь написать автоматический скрипт для создания новых разделов для виртуальной машины. Это всегда терпит неудачу, когда я пытаюсь запустить diskpart со скриптом.Зачем запускать diskpart со скриптом не удается получить правильный результат?

Я использую powershell для вызова diskpart. я пишу файл сценария текстовый и передать его DISKPART в качестве входных данных:

diskpart /s script.txt 

Вот содержание моего script.txt:

select disk 0 
select partition 1 
extend size=10240 
create partition extended 
create partition logical size=10240 
assign letter=E 
FORMAT FS = NTFS QUICK 
create partition logical size=3072 
assign letter=p 
FORMAT FS = NTFS QUICK 
create partition logical 
assign letter=y 
FORMAT FS = NTFS QUICK 

он не сделал ничего, кроме напечатать все команды, как я введите команды, имеющие синтаксическую ошибку. Я проверил свои сценарии снова и снова, это должно быть правильно, и они могут быть успешно запущены, если я запускаю их один за другим в diskpart.

Я даже попробовал очень простую базовую команду, такую ​​как «список дисков» в моем скрипте, но он все равно имеет тот же результат. Я думаю, что это, наверное, очень простой вопрос, но я искал интернет в течение одного дня, пока не получил ответа. Будет очень признателен, если кто-нибудь может помочь или дать какие-либо подсказки. Спасибо.

выход для 'DISKPART/s script.txt':

Microsoft DiskPart version 6.1.7600 
Copyright (C) 1999-2008 Microsoft Corporation. 
On computer: AUTOHOSTNAME 

Microsoft DiskPart version 6.1.7600 

ACTIVE  - Mark the selected partition as active. 
ADD   - Add a mirror to a simple volume. 
ASSIGN  - Assign a drive letter or mount point to the selected volume. 
ATTRIBUTES - Manipulate volume or disk attributes. 
ATTACH  - Attaches a virtual disk file. 
AUTOMOUNT - Enable and disable automatic mounting of basic volumes. 
BREAK  - Break a mirror set. 
CLEAN  - Clear the configuration information, or all information, off the 
       disk. 
COMPACT  - Attempts to reduce the physical size of the file. 
CONVERT  - Convert between different disk formats. 
CREATE  - Create a volume, partition or virtual disk. 
DELETE  - Delete an object. 
DETAIL  - Provide details about an object. 
DETACH  - Detaches a virtual disk file. 
EXIT  - Exit DiskPart. 
EXTEND  - Extend a volume. 
EXPAND  - Expands the maximum size available on a virtual disk. 
FILESYSTEMS - Display current and supported file systems on the volume. 
FORMAT  - Format the volume or partition. 
GPT   - Assign attributes to the selected GPT partition. 
HELP  - Display a list of commands. 
IMPORT  - Import a disk group. 
INACTIVE - Mark the selected partition as inactive. 
LIST  - Display a list of objects. 
MERGE  - Merges a child disk with its parents. 
ONLINE  - Online an object that is currently marked as offline. 
OFFLINE  - Offline an object that is currently marked as online. 
RECOVER  - Refreshes the state of all disks in the selected pack. 
       Attempts recovery on disks in the invalid pack, and 
       resynchronizes mirrored volumes and RAID5 volumes 
       that have stale plex or parity data. 
REM   - Does nothing. This is used to comment scripts. 
REMOVE  - Remove a drive letter or mount point assignment. 
REPAIR  - Repair a RAID-5 volume with a failed member. 
RESCAN  - Rescan the computer looking for disks and volumes. 
RETAIN  - Place a retained partition under a simple volume. 
SAN   - Display or set the SAN policy for the currently booted OS. 
SELECT  - Shift the focus to an object. 
SETID  - Change the partition type. 
SHRINK  - Reduce the size of the selected volume. 
UNIQUEID - Displays or sets the GUID partition table (GPT) identifier or 
      master boot record (MBR) signature of a disk. 

ответ

2

Скорее всего вы сохранили script.txt в формате Unicode. Откройте файл в блокноте, нажмите Файл → Сохранить как ..., выберите «ANSI» из выпадающего списка Кодирование внизу диалогового окна и нажмите «ОК».

PowerShell использует Unicode как кодировку по умолчанию, так что вам нужно явно установить кодировку ascii при создании таких файлов с помощью PowerShell:

@" 
select disk 0 
select partition 1 
... 
"@ | Out-File 'script.txt' -Encoding ascii 
+0

Спасибо за ваш ответ. Он решен, как я сохранил как ANSI. –

+0

Извините, что забыли принять ответ, я новичок здесь. :п –

Смежные вопросы