我需要一个在窗口中运行的脚本来监视我的文件夹。当我将 jpg 文件放入此文件夹中时,在窗口中运行的脚本应该
- 使用 photoshop droplet (.exe) 打开该 jpg 文件,
- 等待一会儿,
- 运行再次检查.jpg 文件。
我现在拥有的脚本可以运行,但我需要修改它。
我想要窗口打开带有随机液滴我创建的:可能是 5 个 droplet,假设我有 5 个 droplet,即 1.exe、2.exe、3.exe、4.exe、5.exe,而不仅仅是 123.exe droplet(此脚本)。我该怎么做?
@echo off
:loop
if exist "C:\Users\Administrator\Desktop\converted\*.jpg" (
for %%a in ("C:\Users\Administrator\Desktop\converted\*.jpg") do (
start "" /w "C:\Users\Administrator\Desktop\123.exe" "%%a"
ping -n 20 localhost >nul
del "%%a"
)
)
ping -n 60 localhost >nul
goto :loop
2015 年 5 月 27 日编辑 更改脚本后,我尝试将您的脚本移到“for 循环”之前,它可以工作,但它在输出中保持相同的值,而不是随机输出到每个循环,请参阅我的脚本
@echo off
:loop
set /a n=%random% %%5+1 ( <-- I move your line to this)
if exist "C:\Users\Administrator\Desktop\converted\*.jpg" (
for %%b in ("C:\Users\Administrator\Desktop\converted\*.jpg") do (
start "" /w "C:\Users\Administrator\Desktop\%n%.exe" "%%b"
ping -n 20 localhost >nul
del "%%b"
)
)
ping -n 60 localhost >nul
goto :loop
答案1
您可以使用 %random% 来执行此操作。
set /a n=%random%%6+1
将生成一个介于 1 和 5 之间的随机数。
%random% % 6 生成一个介于 0 和 5 之间的数字,因此 %random% % 6 + 1 生成一个介于 1 和 6 之间的数字。
文件:https://stackoverflow.com/questions/5777400/how-to-use-random-in-batch-script
编辑:我还不能发表评论,因此下面是实现方法:
@echo off
:loop
if exist "C:\Users\Administrator\Desktop\converted\*.jpg" (
for %%a in ("C:\Users\Administrator\Desktop\converted\*.jpg") do (
set /a n=%random%%6+1
start "" /w "C:\Users\Administrator\Desktop\%n%.exe" "%%a"
ping -n 20 localhost >nul
del "%%a"
)
)
ping -n 60 localhost >nul
goto :loop
其实就是set /a n=...
定义一个新的变量“n”,输入%n%就可以使用它。
答案2
我找到了解决方案,感谢 dano 让我思考如何做到这一点,在我搜索完如何在 for 循环中使用它之后,我终于得到了答案,我必须使用 ! 而不是 % 并使用“SETLOCAL ENABLEDELAYEDEXPANSION”
非常感谢
@echo off
:loop
SETLOCAL ENABLEDELAYEDEXPANSION
if exist "C:\Users\Administrator\Desktop\converted\*.jpg" (
for %%b in ("C:\Users\Administrator\Desktop\converted\*.jpg") do (
set /a n=!random! %%5+1
start "" /w "C:\Users\Administrator\Desktop\!n!.exe" "%%b"
ping -n 20 localhost >nul
del "%%b"
)
)
ping -n 60 localhost >nul
goto :loop