cmd中IF存在/不存在的批处理文件问题
Posted
技术标签:
【中文标题】cmd中IF存在/不存在的批处理文件问题【英文标题】:Question of batch file with IF exists/ not exists in cmd 【发布时间】:2022-01-14 08:16:37 【问题描述】:我想做一个脚本,但是在项目过程中遇到了问题。
根据以下脚本,如果所有文件都存在,则运行复制功能。 --> 没关系。
但是,如果一个文件或多个文件不存在,那么如何先列出所有错误信息,然后暂停并运行复制功能。
非常感谢。
代码
@ECHO OFF
IF EXIST "G:\A.TXT" (
IF EXIST "G:\B.TXT" (
IF EXIST "G:\C.TXT" (
CALL :COPY
) ) )
IF NOT EXIST "G:\A.TXT" (
CALL :A
IF NOT EXIST "G:\A.TXT" (
CALL :B
IF NOT EXIST "G:\A.TXT" (
CALL :C
) ) )
:A
CLS
CALL :HEADER
Powershell -noP -c "Write-Host 'WARNING: A File Missed!' -BackGroundColor BLACK -ForegroundColor YELLOW"
TIMEOUT /T 1 /NOBREAK > NUL
ECHO.
PAUSE
GOTO :EOF
:B
CLS
CALL :HEADER
Powershell -noP -c "Write-Host 'WARNING: B File Missed!' -BackGroundColor BLACK -ForegroundColor YELLOW"
TIMEOUT /T 1 /NOBREAK > NUL
ECHO.
PAUSE
GOTO :EOF
:C
CLS
CALL :HEADER
Powershell -noP -c "Write-Host 'WARNING: C File Missed!' -BackGroundColor BLACK -ForegroundColor YELLOW"
TIMEOUT /T 1 /NOBREAK > NUL
ECHO.
PAUSE
GOTO :EOF
:COPY
CLS
CALL :HEADER
ECHO Copying Files...
TIMEOUT /T 1 /NOBREAK > NUL
ECHO.
COPY G:\A.TXT H:\A.TXT
COPY G:\B.TXT H:\B.TXT
COPY G:\C.TXT H:\C.TXT
ECHO.
Powershell -noP -c "Write-Host 'INFO: Copy Completed!' -BackGroundColor BLACK -ForegroundColor GREEN"
TIMEOUT /T 2 /NOBREAK > NUL
GOTO :EOF
【问题讨论】:
【参考方案1】:我认为你对自己来说真的太复杂了。
使用条件运算符:
@echo off
set "files="G:\A.txt" "G:\B.txt" "G:\C.txt""
for %%i in (%files%) do copy "%%~i" "H:\%%~i">nul 2>&1 && Powershell -noP -c "Write-Host 'INFO: Copied %%i' -BackGroundColor BLACK -ForegroundColor GREEN" || Powershell -noP -c "Write-Host 'WARNING: %%i File Missing!' -BackGroundColor BLACK -ForegroundColor YELLOW"
或if exist
和else
声明。
@echo off
set "files="G:\A.txt" "G:\B.txt" "G:\C.txt""
for %%i in (%files%) do if exist "%%~i" (
copy "%%~i" "H:\%%~i">nul 2>&1 && Powershell -noP -c "Write-Host 'INFO: Copied %%i' -BackGroundColor BLACK -ForegroundColor GREEN"
) else (
Powershell -noP -c "Write-Host 'WARNING: %%i File Missing!' -BackGroundColor BLACK -ForegroundColor YELLOW"
)
【讨论】:
以上是关于cmd中IF存在/不存在的批处理文件问题的主要内容,如果未能解决你的问题,请参考以下文章