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
Command line 创建批处理文件以使用用户输入重命名和移动文件_Command Line_Batch File_Command Line Arguments - Fatal编程技术网

Command line 创建批处理文件以使用用户输入重命名和移动文件

Command line 创建批处理文件以使用用户输入重命名和移动文件,command-line,batch-file,command-line-arguments,Command Line,Batch File,Command Line Arguments,我对DOS命令(主要是简单的move/copy/del/rename命令)的了解非常有限,我希望在创建执行以下步骤的批处理文件时得到一些帮助: 提示用户在输入框中输入版本号 验证用户的输入,以确保输入的主要版本、连字符、次要版本(例如5-10) 搜索运行批处理文件的当前文件夹,并通过向该文件添加版本号和硬编码说明来重命名所有PDF 例如,EMDM.pdf的原始文件应重命名为EMDM_5-10_Software Operations Manual.pdf(注意版本号前后的下划线以及说明文本中的

我对DOS命令(主要是简单的move/copy/del/rename命令)的了解非常有限,我希望在创建执行以下步骤的批处理文件时得到一些帮助:

  • 提示用户在输入框中输入版本号

  • 验证用户的输入,以确保输入的主要版本、连字符、次要版本(例如5-10)

  • 搜索运行批处理文件的当前文件夹,并通过向该文件添加版本号和硬编码说明来重命名所有PDF

    例如,EMDM.pdf的原始文件应重命名为EMDM_5-10_Software Operations Manual.pdf(注意版本号前后的下划线以及说明文本中的空格)

  • 转到\webserver\downloads并将该位置中以“EMDM”开头、以“Software Operations Manual.PDF”结尾的PDF文件“移动”到\webserver\downloads\supserseed

  • 移动(备份)以前版本的PDF后,“复制”与bacth文件位于同一文件夹中的新重命名PDF到\webserver\downloads

  • 成功移动后,删除与bacth文件位于同一文件夹中的PDF文件

  • 提前谢谢你

    @echo off
    :getversion
    REM 1.
    set /p VersionNumber=Enter the Version Number: 
    REM 2.
    for /f "tokens=1-3 delims=-" %%a in ("%VersionNumber%") do set Major=%%a& set Minor=%%b
    REM 2.1 Revision of Version Number format
    if not "%Major%-%Minor%" == "%VersionNumber%" goto getversion
    REM 2.2 Revision of Major and Minor be numbers
    set /a NMajor=Major, NMinor=Minor > NUL
    if not "%NMajor%" == "%Major%" goto getversion
    if not "%NMinor%" == "%Minor%" goto getversion
    REM 3.
    for %%a in (*.PDF) do ren "%%a" "%%~Na_%VersionNumber%_Software Operations Manual.pdf"
    REM 4.
    pushd \webserver\downloads
    move "EMDM*Software Operations Manual.pdf" supserseded
    REM 5.
    popd
    copy "EMDM*Software Operations Manual.pdf" \webserver\downloads
    REM 6.
    del "EMDM*Software Operations Manual.pdf"
    REM Steps 5 and 6 above is the same as just one MOVE
    

    我用一种更简单的方法修改了版本号的修订版。

    你能告诉我你已经有了什么吗?这就是我目前拥有的:步骤1设置/p VersionNumber=“输入版本号”步骤2不知道怎么做??步骤3重命名.pdf“%VersionNumber%\u软件操作手册.pdf”\u这无法正常工作,因为它将我的文件从EMDF.pdf重命名为EMDM.pdf\u VersionNumber\u Software Operations Manual.pdf步骤3 MOVE\\webserver\downloads\EMDM*.pdf\\webserver\downloads\supersed步骤5 COPY*.pdf\\webserver\downloads步骤6 DEL*.PDFIm通过附加版本和说明重命名文件基本上存在问题(它将文件扩展名放入其中两次),并验证版本号的格式是否正确。Aacini,非常感谢,这非常有效。在步骤5中,是否有任何方法使用VersionNumber输入的前2个字符并将其附加到要移动的文件中?例如,如果版本号为5-14,只移动“EMDM_5-*软件操作手册.pdf”?如果您指的是“主要编号”而不是“版本号的前2个字符”:移动“EMDM_%Major%-*软件操作手册.pdf”