Batch file 批处理文件,根据自动生成的文件夹名称将文件复制到自动生成的文件夹
我正在将内容发布到自动生成的文件夹中,发布完成后,我希望使用批处理将基于foldersname的文件复制到该文件夹中 自动生成的文件夹始终具有语言名称,例如德语、荷兰语、法语和英语 我希望我的批处理要做的是,当文件夹名为德语时,它会将所有文件从C:\Sourcefolder\DE\复制到运行批处理的新生成的文件夹中。我自己也曾试图找到一些东西,但由于缺乏知识,结果是:Batch file 批处理文件,根据自动生成的文件夹名称将文件复制到自动生成的文件夹,batch-file,if-statement,xcopy,Batch File,If Statement,Xcopy,我正在将内容发布到自动生成的文件夹中,发布完成后,我希望使用批处理将基于foldersname的文件复制到该文件夹中 自动生成的文件夹始终具有语言名称,例如德语、荷兰语、法语和英语 我希望我的批处理要做的是,当文件夹名为德语时,它会将所有文件从C:\Sourcefolder\DE\复制到运行批处理的新生成的文件夹中。我自己也曾试图找到一些东西,但由于缺乏知识,结果是: CHDIR /D %1 @ECHO OFF SETLOCAL SET "sourcedir=%cd%" IF "%1"==
CHDIR /D %1
@ECHO OFF
SETLOCAL
SET "sourcedir=%cd%"
IF "%1"=="German" goto :German
:German
xcopy /Y "C:\Sourcefolder\DE\*.jpg" "%1"
GOTO :EOF
有人能帮我找到正确的方向吗
提前谢谢 下面是批处理文件的代码,它可能会执行您想要的操作
@echo off
rem Is this batch file called without any parameter?
if "%~1"=="" (
echo.
echo Run %~nx0 with language as first parameter.
echo.
echo Example: %~nx0 English
echo.
pause
goto :EOF
)
if /I "%~1"=="German" set "ShortName=DE" & goto CopyFiles
if /I "%~1"=="English" set "ShortName=EN" & goto CopyFiles
rem This batch file was called with a (language) string not listed above.
echo.
echo Error: "%~1" is not a supported language.
echo.
pause
goto :EOF
:CopyFiles
rem Copy all JPEG files of the specified language from source folder
rem to the specified language folder in current working directory.
xcopy /H /I /K /Q /R /Y "C:\SourceFolder\%ShortName%\*.jpg" "%~1"
set "ShortName="
批处理代码中注释的附加说明:
执行批处理文件时,%~1
替换为cmd.exe
,如果批处理文件是以“English”
而不是仅以English
作为第一个参数调用的,则使用第一个参数的字符串删除双引号
如果您想了解有关%~1
或%~nx0
(具有扩展名但没有驱动器和路径的批处理文件的名称)的详细信息,请打开命令提示符窗口,在那里运行调用/?
,并阅读此命令的帮助输出
命令的/I
选项if
使字符串比较不区分大小写
set“ShortName=DE”&goto CopyFiles
中的符号将两个命令set
和goto
连接在一行上,这使得这里可以为每个if
指定两个命令,而不使用括号。有关此特殊运算符的详细信息,请参阅
有关命令xcopy
上使用的开关的详细信息,请在命令提示窗口中运行xcopy/?
,然后阅读输出帮助
顺便说一下:批处理文件将JPEG文件复制到当前工作目录的指定语言子文件夹中。当前工作目录可以是存储批处理文件的目录,但也可以是不同的目录,具体取决于批处理文件是如何启动的以及从哪个目录启动的。如果要确保将JPEG文件复制到批处理文件目录的指定语言子文件夹,则需要使用xcopy
行:
xcopy /H /I /K /Q /R /Y "C:\SourceFolder\%ShortName%\*.jpg" "%~dp0%~1"
哪个字符串作为参数传递给批处理文件,只有德语、英语、希腊语等,或者更长的字符串,例如以语言名称结尾的整个路径?@Mofi只有德语、英语、希腊语等,而不是整个路径。