批处理文件从命令

时间:2016-01-29 18:20:31

标签: batch-file

我正在使用程序加密.dll.exe以便与USB许可证一起使用,如何简化我的.bat脚本以输入目录中的所有文件并输出所有文件具有原始文件名但不必在.bat脚本中键入每一行的文件?

以下是一个例子:

call %programforencypting% -o:"%dir%\subdirectory\file.dll" "%dir%\file.dll
call %programforencypting% -o:"%dir%\subdirectory\file2.dll" "%dir%\file2.dll
call %programforencypting% -o:"%dir%\subdirectory\file3.dll" "%dir%\file3.dll
call %programforencypting% -o:"%dir%\subdirectory\file.exe" "%dir%\file.exe

基本上,不是每个文件名都有数百行,而是相同的命令,我只是使用一些东西来实际上是通配符吗?

2 个答案:

答案 0 :(得分:0)

我不熟悉使用引用变量调用程序,所以要小心。

也许这会奏效?或至少帮助。

rem delayed expansion enabled by habit with 'for' loops.

setlocal enableDelayedExpansion
for /r . %%G in (!dir!\subdirectory\*) do (
    call !programforencypting! -o:"!dir!\subdirectory\%%~nxG" "!dir!\%%~nxG
)

让我知道这是否有效,或者你要我详细说明。

答案 1 :(得分:0)

for /f "delims=" %%a in ('dir /b /a-d *.dll *.exe') do call %programforencypting% -o:"%dir%\subdirectory\%%a" "%dir%\%%a"

作为批处理行 - 如果您有足够的勇气想要在每次提示时重新键入,请将所有%%a缩减为%a