Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自c++;批处理文件的字符串 我想从C++输入批处理文件变量,但是我搜索了很多帮助也做不到…… system("bin\\data\\locker.bat"); 批处理文件正在请求输入,但如何获取C++的值并插入批处理文件? 我用C++打开这个批处理,但是我不能插入使用C++所需要的密码。 批次:_C++_Batch File - Fatal编程技术网

来自c++;批处理文件的字符串 我想从C++输入批处理文件变量,但是我搜索了很多帮助也做不到…… system("bin\\data\\locker.bat"); 批处理文件正在请求输入,但如何获取C++的值并插入批处理文件? 我用C++打开这个批处理,但是我不能插入使用C++所需要的密码。 批次:

来自c++;批处理文件的字符串 我想从C++输入批处理文件变量,但是我搜索了很多帮助也做不到…… system("bin\\data\\locker.bat"); 批处理文件正在请求输入,但如何获取C++的值并插入批处理文件? 我用C++打开这个批处理,但是我不能插入使用C++所需要的密码。 批次:,c++,batch-file,C++,Batch File,1:如果进行比较,则应引用的两个操作数。如果操作数展开为零,则如果未加引号,将导致语法错误 2:您应该使用:eof隐式标签,而不是定义自己的结束标签 3:您应该使用echo.而不是带有空格分隔符的echo。在您的情况下,这在技术上是不必要的,因为您只有文字消息,但是在消息仅由变量扩展组成的情况下,例如echo%msg%,使用echo.%msg%将打印一个空行,而不是echo处于打开状态。,保持一致性很好 4:在运行set/p命令之前,您应该初始化set/p目标变量;否则,剩余值可能会弄乱脚本 5

1:如果进行比较,则应引用
的两个操作数。如果操作数展开为零,则如果未加引号,将导致语法错误

2:您应该使用
:eof
隐式标签,而不是定义自己的
结束
标签

3:您应该使用
echo.
而不是带有空格分隔符的
echo
。在您的情况下,这在技术上是不必要的,因为您只有文字消息,但是在消息仅由变量扩展组成的情况下,例如
echo%msg%
,使用
echo.%msg%
将打印一个空行,而不是
echo处于打开状态。
,保持一致性很好

4:在运行
set/p
命令之前,您应该初始化
set/p
目标变量;否则,剩余值可能会弄乱脚本

5:我承认这是主观的,但我建议您将脚本的不同部分隔开以提高可读性,而不是将其作为一个完整的代码块

6:您可以通过管道向内部调用
set/p
的脚本输入密码,尽管通过管道向批处理脚本输入密码会引起令人不快的安全问题


这就是我重写代码的方式(使用“pass”作为密码):

和C++程序(使用宏存储密码;或者,您可以从文件读取并调用<代码> SpRtff)(/Cord>)生成系统命令字符串,这可能是更好的,因为它可以避免密码在C++源和二进制中的存储:


请举例说明你正在尝试做什么。谢谢你的建议!!然而,即使我的批处理文件成功地在C++中运行,并且能够插入密码,甚至显示“文件夹解锁成功”,我的私有文件仍然没有显示在文件夹中,有什么东西我错过了吗?什么私人文件?您的脚本对文件不做任何操作。我的批处理文件功能是当它运行并插入密码时,它将创建一个私人文件夹。当它再次运行时,它将要求锁定/隐藏文件夹。我可以正常运行时,我手动点击批处理文件,但当使用C++代码运行它,它不提供任何行动…
cls 
@ECHO OFF 
title Folder Private 
if EXIST "HTG Locker" goto UNLOCK 
if NOT EXIST Private goto MDLOCKER 
:CONFIRM 
echo Are you sure you want to lock the folder(Y/N) 
set/p "cho=>" 
if %cho%==Y goto LOCK 
if %cho%==y goto LOCK 
if %cho%==n goto END 
if %cho%==N goto END 
echo Invalid choice. 
goto CONFIRM 
:LOCK 
ren Private "HTG Locker" 
attrib +h +s "HTG Locker" 
echo Folder locked 
goto End 
:UNLOCK 
echo Enter password to unlock folder 
set/p "pass=>" 
if NOT %pass%== PASSWORD_GOES_HERE goto FAIL 
attrib -h -s "HTG Locker" 
ren "HTG Locker" Private 
echo Folder Unlocked successfully 
goto End 
:FAIL 
echo Invalid password 
goto end 
:MDLOCKER 
md Private 
echo Private created successfully 
goto End 
:End
cls
@echo off

title Folder Private

if exist "HTG Locker" goto UNLOCK
if not exist Private goto MDLOCKER

:CONFIRM
echo.Are you sure you want to lock the folder(Y/N)
set cho=
set /p "cho=>"
if "%cho%"=="Y" goto LOCK
if "%cho%"=="y" goto LOCK
if "%cho%"=="n" goto :eof
if "%cho%"=="N" goto :eof
echo.Invalid choice.
goto CONFIRM

:LOCK
ren Private "HTG Locker"
attrib +h +s "HTG Locker"
echo.Folder locked
goto :eof

:UNLOCK
echo.Enter password to unlock folder
set pass=
set /p "pass=>"
if not "%pass%"=="pass" goto FAIL
attrib -h -s "HTG Locker"
ren "HTG Locker" Private
echo.Folder Unlocked successfully
goto :eof

:FAIL
echo.Invalid password
goto :eof

:MDLOCKER
md Private
echo.Private created successfully
#include <cstdio>
#include <cstdlib>

#define PASSWORD "pass"

int main(void) {
    system("echo." PASSWORD "| locker.bat");
    return 0;
} // end main()
cl a.cpp
## Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
## Copyright (C) Microsoft Corporation.  All rights reserved.
##
## a.cpp
## Microsoft (R) Incremental Linker Version 14.00.23026.0
## Copyright (C) Microsoft Corporation.  All rights reserved.
##
## /out:a.exe
## a.obj
##
.\locker
## Are you sure you want to lock the folder(Y/N)
## >y
## Folder locked
.\a
## Enter password to unlock folder
## >Folder Unlocked successfully