【问题标题】:Windows Batch: using SET command to change part of a file pathWindows Batch:使用 SET 命令更改文件路径的一部分
【发布时间】:2012-08-05 21:24:56
【问题描述】:

我想执行一个程序来操作文件夹及其子文件夹中的所有图像,并将这些图像保存在另一个目录中,但在相同的子文件夹结构中。为此,我需要获取原始图像和处理后图像的完整路径。

但我根本无法使用 SET 命令来转换目录名称。这是我的工作:

set originalpath=g:\Users\PLAY\Documents\backuppgm\images
set convertpath=g:\Users\PLAY\Documents\backuppgm\resized
for /R %originalpath% %%G in (*.jpg) DO (
echo %%G
SET fullpath=%%G
SET modified=!fullpath:%originalpath%=%convertpath%!
echo Full: %fullpath%
echo Modified: %modified%

这个想法是完整路径等于 %originalpath%\subfolder\image1.jpg 并且修改后的将等于 %convertpath%\subfolder\image1.jpg 然后我可以在这两个项目上运行我的批次...... 但是那个 set modified 命令根本不起作用...

简单地说,我想将字符串 %originalpath%\subfolder\image1.jpg 转换为 %convertpath%\subfolder\image1.jpg

谢谢,

布莱斯

【问题讨论】:

    标签: windows batch-file replace command set


    【解决方案1】:

    有两个问题。

    1) 工作批处理示例(例如“test.cmd”)

    @echo off
    cls
    set originalpath=g:\Users\PLAY\Documents\backuppgm\images
    set convertpath=g:\Users\PLAY\Documents\backuppgm\resized
    for /R %originalpath% %%G in (*.jpg) DO call :cvt "%%G"
    goto :EOF
    :cvt
    echo "%~1"
    SET fullpath=%~1
    SET modified=!fullpath:%originalpath%=%convertpath%!
    echo Full: %fullpath%
    echo Modified: %modified%
    goto :EOF
    

    2) 你必须/V:ON调用它

    cmd /V:ON /c test.cmd
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 2011-10-27
      • 2014-08-10
      • 1970-01-01
      相关资源
      最近更新 更多