Batch file 无法使用批处理脚本将tiff图像排序到特定文件夹
我目前正在尝试创建一个批处理脚本,以便根据用户输入将多个tiff图像移动到其他特定文件夹,从而对文件夹中的多个tiff图像进行排序。到目前为止,我取得的成就是: 1.可以循环浏览文件夹中的所有文件 2.可以打开图像查看器查看tiff文件 3.关闭图像查看器程序 4.将tiff文件移动到特定文件夹 然而,我不知道为什么我的set/p在尝试回显输入时没有注册用户的输入值 cmd给我的回音是关闭的消息 如果有人能帮我解决这个问题,我将不胜感激 非常感谢 G 一些小问题 首先,不能在带括号的一系列命令的代码块内使用标签,其次是最常用的delayedexpansion-如果在代码块内更改了变量,则除非延迟扩展生效,否则将使用原始值。如果延迟扩展生效,则%var%指的是原始值和!瓦尔!设置为当前运行时值 还请注意,如果用户只需输入响应,set/p不会更改变量的值,因此set name=将清除其值。当然,您可以省略该行,如果您只需按Enter键,则将再次使用上次输入的name值 有很多关于延迟扩展的文章,只需使用搜索功能即可Batch file 无法使用批处理脚本将tiff图像排序到特定文件夹,batch-file,Batch File,我目前正在尝试创建一个批处理脚本,以便根据用户输入将多个tiff图像移动到其他特定文件夹,从而对文件夹中的多个tiff图像进行排序。到目前为止,我取得的成就是: 1.可以循环浏览文件夹中的所有文件 2.可以打开图像查看器查看tiff文件 3.关闭图像查看器程序 4.将tiff文件移动到特定文件夹 然而,我不知道为什么我的set/p在尝试回显输入时没有注册用户的输入值 cmd给我的回音是关闭的消息 如果有人能帮我解决这个问题,我将不胜感激 非常感谢 G 一些小问题 首先,不能在带括号的一系列命令的
@ECHO OFF
cd "C:\img\"
FOR /R %%f IN (*.tif) DO (
echo Current file is: %%f
start "" "C:\Program Files (x86)\Common Files\Global 360\Imaging\kodakprv.EXE" %%f
set /p name= Action:
IF "%name%" == "1" GOTO ONE
IF "%name%" == "2" GOTO TWO
IF "%name%" == "3" GOTO THREE
ECHO %name%
echo None of the above, BYE!
GOTO END
:ONE
echo "I pressed 1"
taskkill /IM kodakprv.EXE
move %%f "C:\img\1"
cls
:TWO
echo "I pressed 2"
taskkill /IM kodakprv.EXE
move %%f "C:\img\2"
cls
:THREE
echo "I pressed 3"
taskkill /IM kodakprv.EXE
move %%f "C:\img\3"
cls
)
:END
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
cd "C:\img\"
FOR /R %%f IN (*.tif) DO (
echo Current file is: %%f
start "" "C:\Program Files (x86)\Common Files\Global 360\Imaging\kodakprv.EXE" %%f
SET "name="
set /p name= Action:
for %%v in (1 2 3) do IF "!name!" == "%%v" (
set "validaction=Y"
echo "I pressed %%v"
taskkill /IM kodakprv.EXE
move %%f "C:\img\%%v"
pause
cls
)
if not defined validaction (
ECHO !name!
echo None of the above, BYE!
GOTO END
)
)
:END