我有一个问题,取决于创建的批处理文件(通过上下文菜单在文件上运行 - 右键单击)会产生不同的结果。
如果选择批处理文件作为默认程序(不需要设置)来打开文件,它可以正常工作。即右键单击>'开放'或双击
如果批处理文件只能从'打开'菜单但默认程序不同(所需的设置)批处理文件启动但没有产生结果
批处理文件非常简单,执行一个需要两个参数的程序 - 输入文件和目标文件夹:
@echo off
"PCAP Generator.exe" %~dpnx1 %cd%
DEL *.log /q
您能否帮助解释行为不同的原因? 如果可以通过右键单击>选择批处理文件,您是否可以帮助更正批处理文件以使其正常运行? '打开'菜单并不是打开文件的默认程序。
提前致谢
答案 0 :(得分:1)
问题是:
如果'打开'使用%cd%位置设置为C:\ Windows \ system32
C:\Windows\system32>ECHO cd "C:\Windows\system32"
如果脚本设置为默认值并通过'打开'然后%cd%location正确设置到输入文件所在的文件夹。
C:_LOGS>ECHO cd "C:_LOGS"
避免此问题的解决方案是:
@echo off
"PCAP Generator.exe" "%~f1" C:%~p1
del C:%~p1*.log
非常感谢您的帮助
答案 1 :(得分:0)
最有可能的是:
@echo off
if not "%~1" == "" (
"PCAP Generator.exe" "%~f1" "%~dp1"
del /Q "%~dp1*.log" 2>nul
)
如果在没有参数的情况下调用批处理文件,则进行简单的测试。
%~dp1
引用传递给此批处理文件的第一个参数的驱动器号和路径。该字符串以反斜杠结尾。
删除日志文件是在安静模式下完成的,如果目录中没有LOG文件,则会禁止显示错误消息。
有关使用过的命令的详细信息,请打开命令提示符窗口并执行:
call /?
...输出帮助解释了%~dp1
和%~f1
。del /?
...输出帮助解释了选项/Q
。通常,在命令提示符窗口中运行带有参数/?
的命令或控制台应用程序,可以在1个或多个窗口页面中获取此命令或控制台应用程序输出的帮助。
还有一个命令help
列出了Windows标准命令,如果在没有任何参数的情况下执行,而help
运行help call
之类的命令会产生与运行call /?
时相同的帮助输出1}}。