我的批处理文件在传递文件(.mkv)时无法实现call命令,但在没有参数的情况下直接运行时可以正常工作。下班后的命令包括运行带参数的vlc。
call "C:\Users\****\Desktop\System Tools\Monitors\Primary2.bat"
start "VLC media player.lnk" %1
如果重要的话,在Windows 7上运行。
更新:似乎调用函数不想使用primary2.bat,但是可以使用更简单的批处理文件来执行primary2.bat做的事情之一
进行比较 primary2.bat
@ECHO off
IF Exist Single.txt (
IF EXIST Primary1.txt (
echo Primary Screen Set to Two >> Primary2.txt
del /q Primary1.txt
echo Triple Monitors enabled >> Triple.txt
del /q Single.txt
If Exist HDMI.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
IF Exist VGA.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleVGA\TripleVGA Primary2.lnk"
)
)
)
IF Exist Dual.txt (
IF EXIST Primary1.txt (
echo Primary Screen Set to Two >> Primary2.txt
del /q Primary1.txt
echo Triple Monitors enabled >> Triple.txt
del /q Dual.txt
If Exist HDMI.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
IF Exist VGA.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleVGA\TripleVGA Primary2.lnk"
)
)
IF EXIST Primary3.txt (
echo Primary Screen Set to Two >> Primary2.txt
del /q Primary3.txt
echo Triple Monitors enabled >> Triple.txt
del /q Dual.txt
If Exist HDMI.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
IF Exist VGA.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleVGA\TripleVGA Primary2.lnk"
)
)
)
IF Exist Triple.txt (
IF EXIST Primary1.txt (
echo Primary Screen Set to Two >> Primary2.txt
del /q Primary1.txt
If Exist HDMI.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
IF Exist VGA.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleVGA\TripleVGA Primary2.lnk"
)
)
IF EXIST Primary3.txt (
echo Primary Screen Set to Two >> Primary2.txt
del /q Primary3.txt
If Exist HDMI.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
IF Exist VGA.txt (
"C:\Users\****\Desktop\System Tools\Monitors\TripleVGA\TripleVGA Primary2.lnk"
)
)
)
hello.bat用它来测试,这个工作
echo hello
"C:\Users\****\Desktop\System Tools\Monitors\TripleHDMI\TripleHDMI Primary2.lnk"
)
pause
都是单独工作
答案 0 :(得分:1)
如果您要做的只是将mkv
文件作为参数传递给您正在调用的批处理文件,则语法为
call "C:\Users\****\Desktop\System Tools\Monitors\Primary2.bat" mkvfile.mkv
然后在调用批处理文件中,可以使用mkv
访问%1
文件。
答案 1 :(得分:0)
弄清楚我的问题。在外部批处理文件中引用了本地文件,将它们全部更改为完整地址,现在它可以完美地工作。
将HDMI.txt更改为“C:\ Users **** \ Desktop \ System Tools \ Monitors \ HDMI.txt”,依此类推所有地址。
由于某些原因,从cmd调用的批处理文件无法使用相对地址