gpt4 book ai didi

batch-file - 如何正确使用 IF 和 GOTO 语句

转载 作者:行者123 更新时间:2023-12-04 00:39:36 25 4
gpt4 key购买 nike

我对编写批处理文件的经验为零,但我的目标似乎并不困难。我正在尝试编写一个小脚本,提示用户输入 ID 号,然后搜索 .jpg 目录并将包含 ID 号的任何图片复制到单独的目录。 .jpg 是名称 xxxxxx_zzz.jpg,其中 xxxxxx 是最多 6 位的 ID 号,zzz 是序列号。比如一个ID可以有很多张图片:123456_001.jpg、123456_002.jpg、123456_003.jpg等。

我玩过几个 IFGOTO 命令,但我似乎偏离了我的目标。我知道我目前在下面使用的两个 IF 语句是垃圾,但我将它们留在语法中以传达我认为我应该前进的方向。

我无法让 IF 语句使用 GOTO 命令。我也不认为我完全理解标签应该如何工作。

   @ECHO OFF
CLS
:START
DEL /q C:\Users\ADMIN\Desktop\temp\*.*
:GETINPUT
set /p propkey=Enter the Property Key of pictures to retrieve.:
IF EXIST C:\Users\ADMIN\Desktop\photos\*%propkey%_???.jpg GOTO Success
IF "%propkey%"=="" ECHO No Property Key was entered. GOTO START
:Success
ECHO Pictures from Property Key %propkey% will now be moved to the Temp folder on the Desktop. && PAUSE
COPY "C:\Users\ADMIN\Desktop\photos\*%propkey%*.jpg" "C:\Users\ADMIN\Desktop\temp\"
START C:\Users\ADMIN\Desktop\temp\
:END

最佳答案

试试这个:

:Start
@echo off
cls
:: store source folder
set _sd=C:\Users\ADMIN\Desktop\photos
:: store target folder
set _td=C:\Users\ADMIN\Desktop\temp
:CheckFolders
if not exist %_sd% echo Source folder not found.&goto End
if not exist %_td% echo Target folder not found.&goto End
:: wipe target folder
del /q %_td%\*.*
:GetKey
set /p _key=Enter the property key:
if '%_key'=='' echo No property key entered. Please retry.&goto GetKey
if not exist "%_sd%\*%_key%*.jpg" echo No photos matched the key.&goto End
echo Copying pictures to %_td%...
copy "%_sd%\*%_key%*.jpg" "%_td%"
:OpenFolder
start "%windir%\explorer.exe" "%_td%"
:End

标签是一种在批处理文件中任意指定一行的方法。 GOTO 命令使用它来更改命令执行的通常从上到下的进程,指定接下来应该处理哪一行。您可能已经想到,将 IF 命令与 GOTO 结合使用可以进行条件处理,例如在满足值或遇到错误时。

标签的另一种用途是用于文档或清晰度。在我上面的示例中,GOTO 没有使用“CheckFolders”,但它让程序员提示该部分代码的作用。

关于batch-file - 如何正确使用 IF 和 GOTO 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com