Batch file 用于将文件从一个位置复制到另一个位置的批处理文件

Batch file 用于将文件从一个位置复制到另一个位置的批处理文件,batch-file,cmd,Batch File,Cmd,我如何编程一个bat文件,使其能够将文件.dll放在.bat文件所在的同一文件夹中,但仅当该文件不存在时,才能将其放入windowsMainDir/system32文件夹中?创建批处理文件,如“copy_file.cmd”,并放入以下内容: @echo off SET SRC="%~dp0file.dll" SET DEST="%WINDIR%\system32\file.dll" if not exist %DEST% copy /V %SRC% %DEST% 如果目标文件不存在,它会将源文

我如何编程一个bat文件,使其能够将
文件.dll
放在
.bat
文件所在的同一文件夹中,但仅当该文件不存在时,才能将其放入
windowsMainDir/system32
文件夹中?

创建批处理文件,如“copy_file.cmd”,并放入以下内容:

@echo off
SET SRC="%~dp0file.dll"
SET DEST="%WINDIR%\system32\file.dll"
if not exist %DEST% copy /V %SRC% %DEST%
如果目标文件不存在,它会将源文件复制到目标。
/V
开关使复制验证文件复制是否正确,并且是可选的

SRC
中的
%dp0
从变量
%0
(批处理文件的路径)获取驱动器
d
和路径
p
,并将该路径用作
文件.dll
的前缀。您希望这样做以确保脚本始终从与批处理文件相同的目录而不是当前目录获取文件。例如,如果批处理文件位于映射到
H:
的网络驱动器上,您仍然可以从
C:
运行它

c:\> h:\shared_scripts\copy_file.cmd

创建类似“copy_file.cmd”的批处理文件,并放入以下内容:

@echo off
SET SRC="%~dp0file.dll"
SET DEST="%WINDIR%\system32\file.dll"
if not exist %DEST% copy /V %SRC% %DEST%
如果目标文件不存在,它会将源文件复制到目标。
/V
开关使复制验证文件复制是否正确,并且是可选的

SRC
中的
%dp0
从变量
%0
(批处理文件的路径)获取驱动器
d
和路径
p
,并将该路径用作
文件.dll
的前缀。您希望这样做以确保脚本始终从与批处理文件相同的目录而不是当前目录获取文件。例如,如果批处理文件位于映射到
H:
的网络驱动器上,您仍然可以从
C:
运行它

c:\> h:\shared_scripts\copy_file.cmd

我想在现代文件系统中,您可以安全地忽略
/V
开关。您可能需要将第2行更改为
SET SRC=“%~dp0file.dll”
%~dp0
扩展到批处理文件所在文件夹的路径。这样,如果当前目录与批处理文件所在的目录不同,您仍然可以使用正确的文件。@Cheran S:好主意,我已经做了更改。我想在现代文件系统上,您可以安全地忽略
/V
开关。您可以将第二行更改为
SET SRC=“%~dp0file.dll”
%~dp0
扩展到批处理文件所在文件夹的路径。这样,如果当前目录与批处理文件所在的目录不同,您仍然可以使用正确的文件。@Cheran S:好主意,我已经做了更改。