13
4月
2023
使用 RAM 磁盘加速 1C
16:07

使用 RAM 磁盘加速 1C

13 4月 2023 16:07

将缓存文件传输到位于 RAM 中的磁盘,1C 启动速度可提高 30-60 倍。

问题的描述

升级到 1C Enterprise 8.3 后,性能显著下降。因此,数据库(1C8.1CD 文件)被迁移到 SSD,性能提升了 2-5 倍。然而,这仍然不够:早上同时加载多个程序实例时,用户配置文件中的缓存文件导致硬盘负载增加(磁盘队列大小在 3 到 50 之间),1C 的登录时间也随之延长,最长可达 25 分钟。

瓶颈在于 1C 程序缓存文件,这些文件位于硬盘上 Windows 操作系统用户配置文件目录(C:\Users)中。我通过将缓存文件移动到 RAM 中的虚拟磁盘(RAMdisk)彻底解决了这个问题。

在各种论坛上,专家提出了相同的解决方案,但没有人发布工作BAT(CMD)文件。

RAM中的虚拟磁盘-Imdisk virulal Disk驱动程序

从 [网站]](http://www.ltr-data.se/opencode.html#ImDisk) 开发者处加载: imdiskinst_2.0.10.exe

Imdisk 是 免费软件(GPL 许可证) Windows NT/2000/XP/Vista/7/8/8.1/10 和 Windows Server 2003/2003 R2/2008/2008 R2/2012/2012 R2.

虚拟RAM-Disk V:Windows的创建是由命令制作的:

imdisk -a -t vm -s 2G -m v: -p "/fs: ntfs /q /y"

在哪里:
-a - 创建磁盘后,将其连接(附加):“连接虚拟光盘。此键将设置并使用指定参数连接虚拟磁盘,然后将其安装在系统中”
-t vm - 磁盘的类型:VM “此类虚拟磁盘的存储从虚拟内存释放”
-s 2G - 光盘尺寸2 GB。
-m v: - 一个带有字母的光盘中虚拟磁盘的丘角 - 将创建。 V: 将被创建
-p "/fs: ntfs /q /y" - 创建文件系统后,使用 Format 命令的参数 /fs: ntfs /q /y 进行格式化。其中 /q /y 表示快速格式化,并抑制确认请求。

工作原则

  1. 每天早上 8:50 或任何用户通过任务管理器启动操作系统时,系统会运行第一个 CMD 文件“Ramdisk.cmd”,该文件会在 RAM 中检查并创建一个 2 GB 的虚拟磁盘 V:,并将 1C 所需的配置文件和文件夹从磁盘 C: 复制到该虚拟磁盘。之后,系统会在虚拟磁盘 V: 的同一文件夹中创建指向硬盘上 1C 文件夹的符号链接。

  2. 白天,当会话结束时(即系统退出时),用户会使用第二个 CMD 文件将包含缓存文件的 1C 文件夹从虚拟磁盘 V: 复制到用户配置文件中的磁盘 C:。此外,系统会在 18:10 通过计划程序运行此命令文件,这是当天最后一次将 1C 配置文件从磁盘 V: 复制到磁盘 C:。

为了区分与虚拟唱片“ 1C”文件夹的符号链接,在硬盘驱动器上的初始物理目录中,从中和其中“ 1cref”由英语单词“参考”制成。

命令文件编号1:ramdisk.cmd

  • 从磁盘C中创建虚拟磁盘和早晨复制:在虚拟硬盘上。

    @echo OFF
    if exist "V:\" (
    goto cont
    )
    else
    (
    goto makevdisk
    )

    :makevdisk

    imdisk -a -t vm -s 2G -m V: -p "/fs:ntfs /q /y"

    ping -n 7 127.0.0.1 >nul

    :cont

    v:
    cd \

    if not exist "v:\Users\Ivanov" (
    mkdir v:\Users\Ivanov\AppData\Local\1C
    icacls "v:\Users\Ivanov\AppData\Local\1C" /setowner Ivanov /T /C /Q
    icacls "v:\Users\Ivanov\AppData\Local\1C" /grant:r "Ivanov:(OI)(CI)M" /T
    xcopy /e /f /o /s C:\Users\Ivanov\AppData\Local\1Cref v:\Users\Ivanov\AppData\Local\1C
    mklink /d C:\Users\Ivanov\AppData\Local\1C v:\Users\Ivanov\AppData\Local\1C
    )

    if not exist "v:\Users\Petrov" (
    mkdir v:\Users\Petrov\AppData\Local\1C
    icacls "v:\Users\Petrov\AppData\Local\1C" /setowner Petrov /T /C /Q
    icacls "v:\Users\Ivanov\AppData\Local\1C" /grant:r "Petrov:(OI)(CI)M" /T
    xcopy /e /f /o /s C:\Users\Petrov\AppData\Local\1Cref v:\Users\Petrov\AppData\Local\1C
    mklink /d C:\Users\Petrov\AppData\Local\1C v:\Users\Petrov\AppData\Local\1C
    )

icacls 工具选项:
/setowner - 更改文件或目录的所有者
/C - 出错时继续执行
/T - 更改子目录及其内部文件的所有者
/Q - 抑制成功消息
/grant:r - 授予权限,替换现有权限
“Petrov:(OI)(CI)M” /T - 用户及其权限:

  • (OI) - 对象继承
  • (CI) - 容器继承
  • M - 修改权限

权利线“Petrov:(OI)(CI)M”在引号中以CMD文件组成,否则在启动CMD文件时会出现错误 ,“出乎意料的外观:(CI)M”

应该注意的是,配置文件和用户名的名称并不总是匹配的,
因此,您需要仔细检查并修复团队,因为可以选择以下选项:
icacls "v:\Users\Petrov\AppData\Local\1C" /setowner PetrovPavel /C /L /Q.


命令文件2:ramdisk2.cmd

  • 晚上复制缓存文件。

    @echo OFF
    v:
    cd \

    if exist "v:\Users\Ivanov\AppData\Local\1C" (
    xcopy /e /o /s /y v:\Users\Ivanov\AppData\Local\1C C:\Users\Ivanov\AppData\Local\1Cref
    )

    if exist "v:\Users\Petrov\AppData\Local\1C" (
    xcopy /e /o /s /y v:\Users\Petrov\AppData\Local\1C C:\Users\Petrov\AppData\Local\1Cref
    )

呢注意:任务计划中的两个文件均应代表用户管理员启动。

结果

此前,1C 应用程序的加载时间长达 25 分钟。 输入密码后启动程序的速度现在为30秒。
1C发射时硬盘头部的负载也消失了(HDD力学的磨损减少)。
在文章开头的照片中,虚拟硬盘程序的测量速度是Crystaldiskmark。
Disc 2 GB的大小足以存储Keshe 1C(繁忙的空间为29%,自由71%)。


IMDISK 命令选项说明

IMDISK虚拟磁盘驱动程序控制程序。
为了版权,谢谢,请输入 Imdisk -version

语法:
imdisk -a -t type -m mountpoint [-n] [-o opt1[,opt2 ...]] [-f|-F file]
[-s size] [-b offset] [-v partition] [-S sectorsize] [-u unit]
[-x sectors/track] [-y tracks/cylinder] [-p "format-parameters"] [-P]
imdisk -d|-D [-u unit | -m mountpoint] [-P]
imdisk -R -u unit
imdisk -l [-u unit | -m mountpoint]
imdisk -e [-s size] [-o opt1[,opt2 ...]] [-u unit | -m mountpoint]

-a 挂载虚拟磁盘。此命令配置并挂载虚拟磁盘,

并使用指定的参数将其连接到系统。

-d 从系统中分离虚拟磁盘并释放所有资源。
使用 -D 强制删除,即使设备正在使用中。

-R 紧急删除挂起的虚拟磁盘。此操作仅应作为最后的手段,仅在虚拟磁盘出现问题,无法安全分离时才可使用。例如,代理类型的虚拟磁盘在代理通信失败时就可能发生这种情况。请注意,此操作不会尝试卸载文件系统或以任何方式锁定卷,因此存在数据丢失的潜在风险。请谨慎使用!
-e 编辑现有虚拟磁盘。

-s 参数一起使用时,此命令会增加现有虚拟磁盘的大小。请注意,即使磁盘可以成功扩展,也只有在 Windows 2000 或更高版本且当前文件系统为 NTFS 的情况下,才能在不重新格式化的情况下扩展现有文件系统以填充新的大小。

-o 参数一起使用,可以更改现有虚拟磁盘的介质特性。可以更改的现有虚拟磁盘参数指定虚拟磁盘的介质是否可写和/或可移动。

-t type

选择虚拟磁盘的后备存储。其中 type 可以是以下选项之一:

  • vm:此虚拟磁盘类型的存储空间从系统进程中的虚拟内存分配。 如果使用 -f 开关指定文件,则该文件将被加载到为磁盘映像分配的内存中。
  • file:使用 -f file 开关指定的文件将成为此虚拟磁盘的后备存储。
  • proxy:此虚拟磁盘类型的实际后备存储由 ImDisk 存储服务器控制,此计算机上的驱动程序通过发送存储 I/O 请求来访问该服务器,该请求通过 -f 指定的命名管道发送。

-f file-F file
用于初始化 vm 类型虚拟磁盘的文件类型后备存储文件名,或用于代理类型虚拟磁盘客户端/服务器 I/O 通信的命名管道名称。 对于代理型虚拟磁盘,“file” 可以是 COM 端口或远程服务器,其地址在 -o 选项中指定,并且包含“ip”或“comm”。除了使用 -f 开关指定 DOS 风格的路径(例如 C:\dir\image.bin\server\share\image.bin)之外,您还可以使用 -F 开关指定 NT 原生风格的路径,例如\Device\Harddisk0\Partition1\image.bin。这允许您指定磁盘上的文件,或通信设备上的文件,即使这些设备当前未分配驱动器号。

-l 列出已配置的设备。如果与 -u 或 -m 一起使用,则显示有关此特定设备的信息。

-n 打印 ImDisk 设备名称时,仅显示元素编号,不包含 \Device\ImDisk 前缀。

-s size

虚拟磁盘的大小。除非指定后缀,否则大小以字节为单位。

后缀可以是 b、k、m、g、t、K、M、GT,分别表示 512 字节块的数量、

千字节、百万字节、十亿字节、万亿字节、

千字节、兆字节、吉字节和太字节。后缀

也可以是 %,表示创建 vm 类型虚拟磁盘时可使用的可用物理内存百分比。除非您使用一个实际上不存在的虚拟磁盘类型文件来初始化虚拟磁盘,或者当

使用 -f-F 创建 vm 类型虚拟磁盘时没有初始化映像文件,否则指定大小是可选的。如果在创建基于文件的虚拟磁盘时指定了大小,则用作虚拟磁盘后备存储的文件大小将根据此大小选项指定的大小进行调整。

大小可以为负数,表示可用物理内存减去此大小。例如,如果指定 -400M,则虚拟磁盘大小将等于

可用物理内存减去 400 MB。

-b 偏移量

指定虚拟磁盘在映像文件中的起始偏移量。

虚拟磁盘上的所有 I/O 操作都将相对于此偏移量执行。当挂载包含完整硬盘映像(而非单个分区)的映像文件中的特定分区时,此选项尤其有用。创建 vm 类型的空虚拟磁盘时,此选​​项无效。创建 vm 虚拟磁盘类型时,

如果使用 -f-F 选项指定预加载的映像文件,

则 -b 选项指定 vm 磁盘类型启动时映像文件中的偏移量,

即虚拟磁盘启动的起始位置。

将偏移量指定为 auto 可自动为几种已知的磁盘映像文件格式(除原始格式外)选择偏移量。

目前,Nero .nrg 和 Microsoft .sdi 映像文件支持自动选择偏移量。

-v partition

指定挂载包含主引导记录 (MBR) 和分区的原始硬盘映像文件时要挂载的分区。

分区编号按照它们在主分区表中出现的顺序进行,

然后按照它们在任何扩展分区表中出现的顺序进行编号。

-S sectorsize

虚拟磁盘设备的扇区大小。默认值为 512 字节,

但 CD-ROM/DVD-ROM 设备除外,它们默认使用 2048 字节。

-x 扇区/磁道

请参阅下文对 -y 选项的说明。

-y tracks/cylinder

-x-y 选项可用于指定合成几何结构。

这对于创建可启动映像以便后续启动到
物理设备非常有用。默认值取决于指定的设备类型。

使用 -o 选项。如果指定了 'fd' 选项,则默认值基于虚拟磁盘的大小;

例如,一个 1440K 的映像将获得 2 个磁道/柱面

和 18 个扇区/磁道。

-p "format-parameters"

如果指定了 -p 选项,则会在创建新虚拟磁盘时调用 'format' 命令来创建
文件系统。

"format-parameters" 应该是 format 命令的字符串,用双引号括起来。

该字符串将添加到运行 'format' 的命令行中。

通常情况下,您会指定类似“/fs:ntfs /q /y”这样的参数,这意味着创建一个 NTFS 文件系统,

并快速格式化,无需用户交互。

-o 选项

设置或重置选项:

ro 创建一个只读虚拟磁盘。对于 vm 类型的虚拟磁盘,此选项仅在同时指定了 -f 选项时才能使用。

rw 指定虚拟磁盘应为读写模式。这是默认设置。它可以与 -e 选项一起使用,使
现有的只读虚拟磁盘可写。

sparse 设置映像文件的“稀疏”NTFS 属性。这不会影响代理

vm 类型的虚拟磁盘。

rem 指定应使用可移动介质特性创建设备。此选项会修改驱动程序返回给系统的设备属性。

例如,这会影响某些文件系统的写入缓存操作。

fix 指定虚拟磁盘的介质特性应为固定设备,而非使用 rem 选项指定的可移动设备。

固定设备是默认设置。fix 选项可与 -e 选项一起使用,将现有的可移动虚拟磁盘设置为固定设备。

saved 清除现有虚拟磁盘的“映像已修改”标志。此标志由驱动程序在映像被修改时设置,并显示在虚拟磁盘的 -l 输出中。“saved”选项仅在与 -e 选项一起使用时有效。

请注意,虚拟软盘或 CD/DVD-ROM 驱动器始终为只读,并且无法修改可移动设备。

cd 创建一个虚拟 CD-ROM/DVD-ROM。如果使用 -f 选项指定的文件名以 .iso.nrg.bin 文件扩展名结尾,则此为默认值。

fd 创建一个虚拟软盘。如果虚拟磁盘的大小为以下任一值,则此为默认值: 160K, 180K, 320K, 360K, 640K, 720K, 820K, 1200K,
1440K, 1680K, 1722K, 2880K, 123264K 或 234752K。

hd 在固定磁盘上创建一个虚拟分区。如果文件扩展名或大小不符合选择默认选项 cd 或​​ fd 的条件,则使用默认值。

raw 创建一个设备类型为“未知”的设备对象。系统不会尝试处理此类设备。这可能与第三方驱动程序结合使用,这些驱动程序可以使用此虚拟磁盘设备作为后备存储来提供其他设备对象。

ip 只能与代理型虚拟磁盘一起使用。此选项初始化用户模式服务组件,以使用 TCP/IP 连接到 ImDisk 存储服务器。使用此选项时,-f 开关指定远程主机,后跟一个冒号(可选)和要连接的端口号。

comm 只能与代理型虚拟磁盘一起使用。此选项初始化用户模式服务组件,以通过 COM 端口连接到 ImDisk 存储服务器。使用此选项,-f 开关指定要连接的 COM 端口,
其后可跟一个冒号、一个空格,然后是设备设置字符串,语法与 MODE 命令相同。

shm 只能与代理型虚拟磁盘一起使用。

使用此选项,驱动程序将与同一台计算机上的存储服务器通信,
使用共享内存块进行 I/O 数据传输。

awe 只能与文件类型的虚拟磁盘一起使用。使用此选项,
驱动程序会将映像文件的内容复制到物理内存中。不会对映像文件进行任何更改。

如果此选项与映像文件名一起使用,
则会使用一块物理内存,但不会将映像文件加载到该内存块中。
在这种情况下,需要使用 -s 选项来指定内存块大小。
此选项需要 awealloc 驱动程序,

Windows 2000 及更高版本需要该驱动程序。

bswap 指示驱动程序交换从映像文件读取或写入的每对字节。

在检查某些嵌入式系统中的映像文件时非常有用。

以及数据以小端字节序存储的类似系统。

shared 指示驱动程序以共享写入模式打开映像文件,即使
映像文件是以写入模式打开的。这可用于将包含多个分区的镜像的每个分区挂载为具有不同偏移量和大小的独立虚拟磁盘。
这可能会导致文件系统损坏。
如果使用错误的偏移量和大小参数,请谨慎使用!

par 并行 I/O。适用于文件类型的虚拟磁盘。

设置此标志后,驱动程序会将虚拟磁盘的读写请求直接发送到
处理镜像文件的文件系统驱动程序,并且与原始请求位于同一线程上下文中。
在某些情况下,此标志可以提高性能,尤其是在使用多层虚拟磁盘时,
这些虚拟磁盘由存储在其他虚拟磁盘、
网络文件共享或类似存储上的镜像文件提供支持。
并非所有情况下都支持此标志,具体取决于其他需要处理镜像文件请求的驱动程序。
如果底层驱动程序无法并发处理 I/O 请求,则此标志也可能降低性能或导致读写失败。

buf 缓冲 I/O。适用于文件类型的虚拟磁盘。设置此标志后,驱动程序将以缓冲 I/O 模式打开映像文件。

这通常效率较低,但在某些情况下可能是必要的,例如:
当挂载的映像文件扇区大小小于映像文件所在扇区的扇区大小时。

-u 单元

-a 开关结合使用时,可为 ImDisk 设备请求特定的单元号。

而不是自动分配。与 -d 或​​ -l 结合使用时,可指定要删除或查询的虚拟磁盘的单元号。

-m 挂载点

指定新虚拟磁盘、

要查询的虚拟磁盘或要删除的虚拟磁盘的驱动器号或挂载点。创建
新虚拟磁盘时,您可以指定 #: 作为挂载点,在这种情况下,
将自动使用第一个未使用的驱动器号。

-P 永久。与 -a 开关结合使用时,此选项会保留注册表设置,以便在驱动程序加载时自动重新创建相同的虚拟磁盘,这通常在系统启动期间发生。使用 -d-D 参数删除虚拟磁盘时,注册表中已有的虚拟磁盘设置也会被删除。

但这种方式对可保存的设置有一些限制。

只有内核驱动程序中直接实现的功能才能被保存。

例如,用于格式化虚拟磁盘的 -p 开关将不会被保存。

ICACLS 命令参考

ICACLS name /save ACL_file [/T] [/C] [/L] [/Q]

将名称匹配的文件和文件夹的 DACL 保存到 ACL 文件中,以便

稍后使用 /restore 命令恢复。请注意,

SACL、所有者和完整性标签不会被保留。

ICACLS directory [/substitute SidOld SidNew [...]] /restore ACL_file

[/C] [/L] [/Q]

将保存的 DACL 应用于目录中的文件。

ICACLS name /setowner user [/T] [/C] [/L] [/Q]

更改所有匹配名称的所有者。此选项并非旨在

强制更改所有权

请使用 takeown.exe 程序。

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]

搜索所有包含指定 Sid 的 ACL 的匹配名称。

ICACLS name /verify [/T] [/C] [/L] [/Q]

搜索所有 ACL 不是规范的或长度与 ACE 数量不匹配的文件。

ICACLS name /reset [/T] [/C] [/L] [/Q]

将所有匹配文件的 ACL 替换为继承的默认 ACL。

ICACLS 名称 [/grant[:r] Sid:permission[...]]

[/deny Sid:permission [...]]

[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]

[/setintegritylevel level:policy[...]]

/grant[:r] Sid:permission - 授予用户指定的访问权限。

使用 :r 参数时,这些权限将替换
任何先前授予的显式权限。如果未使用 :r 参数,则这些权限将添加到任何先前授予的

显式权限中。

/deny Sid:permission - 显式撤销用户的指定访问权限。

将为已授予的权限添加一个显式撤销 ACE,

并删除任何对相同权限的显式授予。

/remove[:[g|d]] Sid - 从 ACL 中移除所有 Sid 条目。使用 :g 参数移除此 Sid 中所有已授予的权限。

使用 :d 参数移除此 Sid 中所有已撤销的权限。

/setintegritylevel [(CI)(OI)]level - 显式地为所有匹配的文件添加完整性级别 ACE。级别可以是以下值之一:

L[ow]:低
M[edium]:中
H[igh]:高

级别前面可以添加完整性 ACE 的继承选项,这些选项仅适用于目录。

/inheritance:e|d|r
e - 启用继承
d - 禁用继承并复制 ACE
r - 移除所有继承的 ACE

注意:

SID 可以用数字或友好名称表示。如果指定了数字格式,则在 SID 前添加 *****。

/T - 对名称中指定的目录中所有匹配的文件和目录执行操作。

/C - 即使出现任何文件错误,操作也会继续进行。

错误消息仍会显示。

/L - 对符号链接本身执行操作,
而不是对其目标执行操作。

/Q - ICACLS 命令会抑制成功消息。

ICACLS 保留了 ACE 的规范顺序:

显式撤销
显式授权
继承撤销
继承授权

权限 是一种权限掩码,可以采用以下两种形式之一指定:

简单权限序列:

N - 无访问权限

F - 完全访问权限

M - 修改访问权限

RX - 读取和执行访问权限

R - 只读访问权限

W - 只写访问权限

D - 删除访问权限

以逗号分隔并用括号括起来的单个权限列表:

DE - 删除权限

RC - 读取权限

WDAC - 写入 DAC 权限

WO - 更改所有者权限

S - 同步权限

AS - 系统安全访问权限

MA - 最大权限

GR - 通用读取权限

GW - 通用写入权限

GE - 通用执行权限

GA - 全部共享权限

RD - 读取数据,列出文件夹内容

WD - 写入数据,创建文件

AD - 追加数据和嵌套文件(目录)

REA - 读取扩展属性权限

WEA - 写入扩展属性权限

X - 执行文件并遍历文件夹

DC - 删除嵌套对象

RA - 读取属性

WA - 写入属性

继承权限可以先于任何形式,并且

仅适用于目录:

(OI) - 按对象继承
(CI) - 按容器继承
(IO) - 仅继承
(NP) - 不传播继承
(I) - 从父容器继承权限

示例:

icacls c:\windows* /save ACL_file /T

  • 将 c:\windows 目录及其子目录中所有文件的 ACL 保存到 ACL 文件中。

icacls c:\windows\ /restore ACL_file

  • 从 ACL 文件中恢复 c:\windows 目录及其子目录中所有文件的 ACL。

icacls file /grant Administrator:(D,WDAC)

  • 授予用户 Administrator 对该文件删除和写入 DAC 权限。

icacls file /grant *S-1-1-0:(D,WDAC)

  • 授予 SID 为 S-1-1-0 的用户对该文件删除和写入 DAC 权限。

Xcopy 命令参考

复制文件和目录结构。

Xcopy source [target_object] [/a | /m] [/d [:date]] [/p] [/s [/e]] [/v] [/w]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:file1[+file2][+file3]...]

source 要复制的文件。

target_object 新文件的位置或名称。

/A 仅复制设置了归档属性的文件
属性本身不会被更改。

/M 仅复制设置了归档属性的文件
复制后会清除该属性。

/D:m-d-y 复制在指定日期或之后修改的文件。
如果未指定日期,则仅替换目标文件中早于源文件的文件。

/EXCLUDE:file1[+file2][+file3]...

一个包含字符串的文件列表。每个字符串必须单独占一行。
如果任何字符串与要复制的文件的绝对路径的任何部分匹配,
则该文件将从复制操作中排除。例如,指定字符串“\obj\”或“.obj”将分别排除 obj
文件夹中的所有文件或所有扩展名为 .obj 的文件。

/P 创建新文件前提示。

/S 仅复制包含子目录的非空目录。

/E 复制包含子目录的目录,包括空子目录。
等效于 /S /E 开关组合。兼容 /T 开关。

/V 检查每个新文件的大小。

/W 复制前提示按键。

/C 无论是否出错,都继续复制。

/I 如果目标目录不存在且正在复制多个文件,则假定目标目录为指定目录。

/Q 禁止打印已复制文件的名称。

/F 打印源文件和目标文件的完整名称。

/L 打印已复制文件的名称。

/G 将加密文件复制到不支持加密的目标目录。/H 复制隐藏文件和系统文件等。

/R 覆盖只读文件。

/T 创建目录结构,但不复制文件。空目录和子目录不包含在复制过程中。要创建空目录和子目录,请使用 /T /E 开关组合。

/U 仅复制目标目录中已存在的文件。

/K 复制属性。使用 XCOPY 命令通常会重置“只读”属性。

/N 复制时使用短文件名。

/O 复制所有者信息和 ACL 数据。

/X 复制文件审核设置(隐含 /O 开关)。

/Y 覆盖现有目标文件前不显示确认提示。

/-Y 覆盖现有目标文件前显示确认提示。

/Z 复制网络文件并恢复。

/B 复制符号链接而非其目标文件。

/J 使用非缓冲 I/O 进行复制。
推荐用于非常大的文件。

可以通过环境变量 COPYCMD 设置键值 /Y
命令行键 /-Y 会覆盖此设置。



相关出版物