使用参数将文件作为字符串执行

时间:2017-04-20 19:41:06

标签: windows batch-file vbscript cmd

我在谷歌上搜索了几个小时的主题,却找不到合适的解决方案。

我的目标是创建一个更干净的批处理/ vbs文件,其中包含可执行文件INSIDE批处理/ vbs文件 AS A STRING ,这样脚本就可以运行而无需任何外部文件。

在该场景中唯一有用的Window工具是sqoop codegen --connect jdbc:mysql://127.0.0.1/mydb --table mergetab --username root --password cloudera --bindir /path/to/store/jarfile --fields-terminated-by '\t' ,但它会保存文件,然后访问保存的文件。

我正在寻找更顺畅的解决方案,因此只能访问一个单个文件来执行,并且不会丢失文件。

那(显然)不是正确的语法,只是为了让我知道我在追求的是什么:

merge

2 个答案:

答案 0 :(得分:0)

尝试将文件拖动到批处理文件的图标上,然后您可以使用"%1%环境变量来引用您拖入的文件。

答案 1 :(得分:0)

这是一个样本批处理文件,用于使用Certutil实用程序在Base 64中编码文件。

如何使用它?

只需将此代码保存在记事本或记事本++或任何文本编辑器上,如下所示: Certutil_B64_Encoding_Files.bat 并将任何文件拖放到其上进行编码

@echo off
Title Encoding files with CERTUTIL utility by Hackoo 2017
color 0A & Mode 83,3
If "%~1"=="" ( 
    color 0C & Mode 80,3
    echo(
    echo       You must drag and drop a file over this batch script to be encoded !
    Timeout /T 5 /nobreak>nul & exit /b
)
@for /f %%i in ("certutil.exe") do if not exist "%%~$path:i" (
  echo CertUtil.exe not found.
  pause
  exit /b
)
set "TempFile=%Temp%\Temp_b64 
set "OutputFile=%~nx1_encoded%~x0"
If exist "%OutputFile%" Del "%OutputFile%" >nul 2>&1
echo(
echo         Please wait a while ... Encoding "%~nx1" is in progress ...
certutil.exe -f -encode "%~1" "%TempFile%" >nul 2>&1
(
    echo @echo off 
    echo CERTUTIL -f -decode "%%~f0" "%%Temp%%\%~nx1" ^>nul 2^>^&1 
    echo Start "%~n1" "%%Temp%%\%~nx1"
    echo Exit
)>> "%OutputFile%"
copy "%OutputFile%" /b + "%TempFile%" /b >nul 2>&1
If exist "%TempFile%" Del "%TempFile%" >nul 2>&1
Timeout /T 2 /NoBreak>nul & exit

编码的HTA示例:CommandLine.hta_encoded.bat

这是我的HTA文件的编码输出结果,名为 CommandLine.hta_encoded.bat 因此,您应该将此代码复制并粘贴为CommandLine.hta_encoded.bat并通过双击执行它。你会得到这样的东西:

enter image description here

编码VBS示例:DJBuzzRadio.vbs_encoded.bat

echo off
CERTUTIL -f -decode "%~f0" "%Temp%\DJBuzzRadio.vbs" >nul 2>&1
Start "DJBuzzRadio" "%Temp%\DJBuzzRadio.vbs"
Exit
-----BEGIN CERTIFICATE-----
UGxheSAiaHR0cDovL3d3dy5jaG9jcmFkaW9zLmNoL2RqYnV6enJhZGlvX3dpbmRv
d3MubXAzLmFzeCINClN1YiBQbGF5KFVSTCkNCiAgIERpbSBTb3VuZA0KICAgU2V0
IFNvdW5kID0gQ3JlYXRlT2JqZWN0KCJXTVBsYXllci5PQ1giKQ0KICAgU291bmQu
VVJMID0gVVJMDQogICBTb3VuZC5zZXR0aW5ncy52b2x1bWUgPSAxMDANCiAgIFNv
dW5kLkNvbnRyb2xzLnBsYXkNCiAgIGRvIHdoaWxlIFNvdW5kLmN1cnJlbnRtZWRp
YS5kdXJhdGlvbiA9IDANCiAgICAgICB3c2NyaXB0LnNsZWVwIDEwMA0KICAgbG9v
cA0KICAgd3NjcmlwdC5zbGVlcCAoaW50KFNvdW5kLmN1cnJlbnRtZWRpYS5kdXJh
dGlvbikrMSkqMTAwMA0KRW5kIFN1Yg0K
-----END CERTIFICATE-----