【问题标题】:hide command displaying in command prompt while running batch file运行批处理文件时隐藏命令提示符中显示的命令
【发布时间】:2016-11-22 09:42:30
【问题描述】:

我创建了一个如下所示的批处理文件,但这并没有隐藏在命令提示符 evev 中,尽管使用了 echo off。

我不希望 csv 文件或任何其他文件显示在命令提示符中。 它还显示在命令提示符下使用密码的警告是不安全的, 请帮帮我。

此批处理文件在命令提示符下运行时会生成 W P.xls 作为输出文件

@echo off
    echo %1 
    echo SET @bdate := "%1"; > a.sql
    copy /b a.sql + bdate.sql out.sql
    mysql --user="root" --database="abc" --password="123" < "D:\New   Folder\out.sql"
    java -jar csvtoxls.jar
    del out.sql
    del ws.csv
    rename "W P.xls" "W P"%1".xls"

jar 文件 导入 java.io.DataInputStream; 导入 java.io.FileInputStream; 导入 java.io.FileOutputStream; 导入 java.io.IOException; 导入 java.util.ArrayList;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class csv2 {
    @SuppressWarnings("deprecation")
    public static void main(String args[]) throws IOException {
        ArrayList<ArrayList<String>> allRowAndColData = null;
        ArrayList<String> oneRowData = null;
        String fName = "C:\\New folder\\ws.csv";
        String currentLine;
        FileInputStream fis = new FileInputStream(fName);
        DataInputStream myInput = new DataInputStream(fis);
        int i = 0;
        allRowAndColData = new ArrayList<ArrayList<String>>();
        while ((currentLine=myInput.readLine()) != null) {
            oneRowData = new ArrayList<String>();
            String oneRowArray[] = currentLine.split(";");
            for (int j = 0; j < oneRowArray.length; j++) {
                oneRowData.add(oneRowArray[j]);
            }
            allRowAndColData.add(oneRowData);
            System.out.println();
            i++;
        }

     try {
         HSSFWorkbook workBook = new HSSFWorkbook();
         HSSFSheet sheet = workBook.createSheet("sheet1");
         for (int i1 = 0; i1 < allRowAndColData.size(); i1++) {
           ArrayList<?> ardata = (ArrayList<?>) allRowAndColData.get(i1);
           HSSFRow row = sheet.createRow((short) 0 + i1);
           for (int k = 0; k < ardata.size(); k++) {
                System.out.print(ardata.get(k));
                HSSFCell cell = row.createCell((short) k);
                cell.setCellValue(ardata.get(k).toString());
           }
           System.out.println();
         }
       FileOutputStream fileOutputStream =  new FileOutputStream("C:\\New folder\\W P.xls");
       workBook.write(fileOutputStream);
       fileOutputStream.close();
    } catch (Exception ex) {
   }
 }
}

【问题讨论】:

  • 这里的java有什么问题?
  • java 或 jar 文件没有问题,但 mysql --user="root" --database="abc" --password="123"
  • 你可以把你的代码吗?
  • 请告诉我如何在命令提示符下隐藏以下行的响应 cho SET @bdate := "%1"; > a.sql 复制 /b a.sql + bdate.sql out.sql mysql --user="root" --database="abc" --password="123"
  • 可能是您在 java 中使用的方式造成了这个问题,所以只需输入您的代码,希望您明白我的意思:)

标签: java mysql batch-file


【解决方案1】:

为要隐藏的命令添加@符号。

如果你不想显示输出,也可以在命令前面加上 > nul。

【讨论】:

  • 如何隐藏这一行请帮助->mysql --user="root" --database="abc" --password="123"
  • 尝试为:@mysql --user="root" --database="abc" --password="123"
  • 脚本顶部的@echo off 将隐含的@ 添加到所有行,因此这是不必要的。不过,&gt;nul 应该可以工作。
  • 尝试为:@mysql --user="root" --database="abc" --password="123" NUL
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2020-09-02
相关资源
最近更新 更多