Duc*_*tro 2 windows batch command-line
我编写了一个批处理脚本,假定它%1是文件的路径。有时我想通过在 Windows 资源管理器中拖放来使用这个批处理脚本(将我的目标文件拖到我的批处理脚本文件上),有时我想从现有的命令提示符窗口运行这个批处理脚本并提供我的%1明确的路径(通常只是一个相对路径)。
我不希望我的脚本在“拖放”时立即消失,因此我需要pause. 但是,我不想any key to continue在使用现有命令提示符窗口时每次都按,因此我不想pause.
有没有办法两全其美?我能否以某种方式检测/推断我所处的场景,然后决定暂停或不暂停?这里最好的方法是什么?
尝试在您的批处理文件中使用它:
set arg0=%0
if [%arg0:~2,1%]==[:] pause
Run Code Online (Sandbox Code Playgroud)
这将检查第 0 个参数的第 3 个字符(基本上,批处理文件名本身)是否为冒号。
通常,当您在批处理文件上拖放某些内容时,它被称为:"Drive:\path\to\Batch File.bat" Arg1 Arg2 ...但是,当我们从命令提示符执行批处理文件时,我们通常不倾向于这样调用它,并使用引用的绝对路径。因此,我们可以利用这种差异并pause仅在冒号作为第三个字符存在时才执行 a ,这意味着批处理文件是通过拖放执行的。当然,如果您确实使用带引号的绝对路径从命令提示符执行批处理文件,自然pause也会如此。
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |