需要调整windows cmd脚本才能在bash中工作

时间:2012-06-18 15:47:01

标签: bash cmd

我目前正在使用此脚本移动一些文件并运行其他命令:


@echo off
setlocal disableDelayedExpansion

set "src=sourcePath"
set "dst=destinationPath"
set "search=1080p"

for /r "%src%" %%F in (*%search%*) do (
  set "full=%%~fF"
  set "name=%%~nxF"
    setlocal enableDelayedExpansion
    copy "!full!" "%dst%\!name:%search%=!"
    endlocal
)
REM call your batch script here to process the copied files

任何人都可以帮助我将其改编为bash,以便我可以在linux中运行它吗?

2 个答案:

答案 0 :(得分:1)

如果不知道所有文件名的确切格式,那就更难了,但你可以尝试这样的事情:

#!/bin/bash

files=$(find ./ -type f -name _1080p.*)

for file in ${files[@]} ; do
  new_file=$( echo $file | sed -e 's/_1080p//' )
  cp $file $new_file
  ## add further commands on $new_file here.
done

可以通过向find命令添加正则表达式来改进,并调整sed行以根据需要重命名文件。

答案 1 :(得分:0)

所以,如果我了解你,

file2=$(echo $file | sed -e "s/[1080p]//g")

cp /sourcepath/$file destinationpath/$file2

应该在你的声明中使用。