batch-file - 无法使用批处理脚本将 tiff 图像排序到特定文件夹
问题描述
我目前正在尝试创建一个批处理脚本,这样我就可以通过根据用户输入将文件夹中的多个 tiff 图像移动到其他特定文件夹来对其进行排序。到目前为止我实现的是:1.可以循环浏览文件夹中的所有文件2.可以打开图像查看器查看tiff文件3.关闭图像查看器程序4.将tiff文件移动到特定文件夹
但是,当我尝试回显输入时,我不知道为什么我的 set /p 没有注册用户的输入值。
cmd 给了我“ECHO 已关闭”的消息。
感谢是否有人可以帮我解决这个问题。
非常感谢 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
几个小问题。
首先,您不能在code block
(带括号的一系列命令)中使用标签,其次是旧的最爱,delayedexpansion
- 如果变量在code block
then 中更改,则除非delayed expansion
生效,否则将使用原始值。如果delayed expansion
有效,则%var%
指原始值和!var!
当前(运行时)值。
另请注意,set /p
如果用户响应只是简单的,则不会更改变量的值Enter- 因此set "name="
上述清除其值。当然,您可以省略该行,name
如果您只需按 ,则将再次使用上次输入的值Enter。
有很多关于 SO 的文章delayed expansion
- 只需使用该search
功能。
推荐阅读
- javascript - 在 Express JS 中,post() 方法在部署后在 firebase 云功能中运行良好,但在本地机器上无法运行
- javascript - 滚动条在进入新部分时改变颜色和轨迹块 css html js
- postgresql - postgres - 具有任意 json 的 jsonb 字段 - 索引好吗?
- python - 为什么我收到似乎是有效证书的证书验证错误?
- jwt - Keycloak - 在 JWT 令牌中接收帐户服务角色,但需要自定义角色
- flask - Gunicorn TypeError __call__() 需要 1 到 2 个位置参数,但 Flask 应用程序工厂给出了 3 个
- vb.net - VB.NET Windows 窗体应用程序中的跳转列表
- ruby - gem install jekyll:make失败,在macos上退出代码2
- java - 在导出的 JAR 中加载图像,但从 eclipse 运行时不加载
- angular - Angular - router.navigate 给出的路线不正确