Cmd 批处理文件RSA令牌转换器

Cmd 批处理文件RSA令牌转换器,cmd,Cmd,我是批处理脚本的新手。我正在尝试编写批处理文件,在那里我可以使用RSA令牌转换器。如何使用用户登录的输入更改文件名?文件名将根据用户而更改:x-rimdevice-tatesting.sdtid,tatesting.txt。非常感谢您在这方面的任何帮助。谢谢 set /p a= IF %a%==1 goto iPhone IF %a%==2 goto Android :iPhone set /p uname=Please enter user's Windows login: pause I

我是批处理脚本的新手。我正在尝试编写批处理文件,在那里我可以使用RSA令牌转换器。如何使用用户登录的输入更改文件名?文件名将根据用户而更改:x-rimdevice-tatesting.sdtid,tatesting.txt。非常感谢您在这方面的任何帮助。谢谢

set /p a=
IF %a%==1 goto iPhone 
IF %a%==2 goto Android

:iPhone
set /p uname=Please enter user's Windows login:
pause
If "%uname%"=="" GOTO Error
pushd \\test.com\Tokens
find %uname%
tokenconverter x-rimdevice-tatesting.sdtid -mobile -o tatesting.txt
:Error
echo "You did not enter user's name. Bye! Bye!"

GOTO END
:END
exit

:Android
set /p uname=Please enter user's Windows login:
pause
If "%uname%"=="" GOTO Error
pushd \\testing.com\Tokens
tokenconverter x-rimdevice-tatesting.sdtid -android -o tatesting.txt

:Error
echo "You did not enter user's name. Bye! Bye!"

GOTO END
:end

exit
@ECHO关闭
SETLOCAL
回显用户名为%username%
set/p uname=请输入用户的Windows登录名:
如果未定义,则取消调用转到错误
:电话
设置/p a=“1)iPhone 2)Android?”
如果“%a%”==“1”转到iPhone
如果“%a%”==“2”转到Android
请只回显1或2
转到电话
:iPhone
pushd\\test.com\Tokens
::查找%uname%
ECHO tokenconverter x-rimdevice-tatesting.sdtid-mobile-o tatesting.txt
邻苯二胺
转到终点
:错误
echo“您没有输入用户名。再见!再见!”
转到终点
:安卓
pushd\\testing.com\Tokens
ECHO tokenconverter x-rimdevice-tatesting.sdtid-android-o tatesting.txt
邻苯二胺
转到终点
:结束
暂停
快速眼动出口
后藤:EOF
你的程序有一些问题

标签只是一个标记。批处理只是继续执行它遇到的下一条语句,直到遇到
goto
exit
到达文件末尾

不能复制标签

在这两种情况下,大多数处理都是相同的,因此我对其进行了重新安排,以尽量减少代码

username
由系统设置为包含一袋土豆。这可能更容易使用

您可能更愿意使用
choice
在目标设备之间进行选择。请参见提示文档中的
choice/?

由于用户输入是自由形式的,如果“…”=“…”使用
会更安全(但不是防弹的),因为
“引用字符串”
将字符串作为单个项目处理,如果它包含空格(并且您不能保证用户不会响应“战争与和平”)

PUSHD
推送当前目录并跳转到目标目录。你确定你的目标吗

您没有匹配的
popd
。我已经插入了一个,即使在当前的应用程序中它看起来是多余的。“良好形式”的问题

我不知道
tokenconverter
,所以我只是
ECHO
ed了这些行。您需要删除
ECHO
关键字,以便在验证指令正确后激活

我不知道你所说的
find%uname%
是什么意思<代码>查找
查找文件中的字符串。你在这里做什么是一个谜,所以我已经把
find
注释掉了。(
::
REM
更容易打字,有效地完成相同的工作,并且在视觉上干扰更小)


我只是在结尾处暂停并注释掉您的退出,这样您就可以看到ECHO命令了
EXIT
应通过终止
cmd
的实例来终止批处理。这是调试过程中的一个难题。

做了一些调整,并且能够实现我想要的

@ECHO OFF
color 0a
SETLOCAL
set location1="\\test.com\tokens"
set location2="\\test.com\tokens\iPhone_tokens"
set location3="\\test.com\tokens\android_tokens"
ECHO username is %username%

set /p uname=Please enter user's Windows login:
IF NOT DEFINED uname GOTO Error
:phone
set /p a="1) iPhone 2)Android ? "
IF "%a%"=="1" goto iPhone 
IF "%a%"=="2" goto Android
ECHO 1 or 2 only, please
GOTO phone

:iPhone
pushd %location1%
:: find %uname%
tokenconverter x-rimdevice-%uname%.sdtid -mobile -o iPhone-%uname%.txt
move %location1%\iPhone-%uname%.txt %location2%\iPhone-%uname%.txt
popd
GOTO end

:Error
echo "You did not enter user's name. Bye! Bye!"
GOTO END

:Android
pushd %location1%
tokenconverter x-rimdevice-%uname%.sdtid -android -o android-%uname%.txt
move %location1%\iPhone-%uname%.txt %location3%\android-%uname%.txt
popd
GOTO END

:end
PAUSE
exit

谢谢你的回复。我会尝试并按照你的建议。Magoo,我正在尝试使用用户输入的用户名,并用文件名替换它。例如,用户是billy,则令牌转换器将使用文件:x-rimdevice-billy.sdtid而不是x-rimdevice-tatesting.sdtid。有什么办法吗?请让我知道。谢谢