我有一个文件夹:
\sources\$OEM$\$$\Setup\Scripts\Programs\
C:\Program Files\
我想使用命令将此文件夹内容(几个文件和文件夹)复制到系统驱动器setupcomplete.cmd
FOR /F "tokens=* delims=" %%D IN ('dir /a:d /b %~dp0Programs') DO (
xcopy "%~dp0Programs\%%D\*" "C:\%%D\" /s /i
)
由于某些我不知道的原因,这在无人值守的 Windows 安装期间不起作用(只是永远的黑屏),尽管setupcomplete.cmd
从命令行运行可以正常工作。
无人值守安装过程中的一个问题setupcomlete.cmd
是,当从另一个文件夹(例如 \scripts\folder1)运行另一个 .bat 或 .cmd 时,setupcomplete.cmd
它将卡在那里,\scripts\folder1\
从而阻止运行进一步的命令\scripts\
我已经尝试过%~dp0
并且取得了一些成绩,但是在命令行中起作用的方法在实际设置情况下并不总是起作用。
答案1
在 setupcomplete.cmd 中,您可以尝试执行 ,cd %~dp0
然后执行cd ..
或pushd ..
。这将使您的级别提高一个级别,并且您可以使用变量路径名。
如果您只想复制文件/文件夹,您可以将它们放在您想要作为目标的文件夹[DVD]:\sources\$OEM$\$1\[*]
中。[*]
例如,您想在设置时(或之后?我不知道了)将文件夹复制ABC
到,将文件夹放入。C:\Program Files\
ABC
[DVD]:\sources\$OEM$\$1\Program Files\
$$
代表C:\Windows\
$1
代表C:\
(驱动器根目录)