我是一名 Linux 用户,工作时被迫在 Windows 工作站上工作。我有一个为 bash 编写的脚本,我需要将其转换为 Windows Batch。过去,我没有太多麻烦,但现在我遇到了两个我无法弄清楚的问题。这是原始的 Linux 脚本:
#!/bin/bash
if [ $# != 1 ] ; then
echo "usage: createMavenDirs.sh <name>"
exit 1
fi
timestamp=`date +"%Y-%m-%d-%s"`
projectName="${1}_${timestamp}"
groupID="com.hostname"
version="1.0"
pomFill="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project>\n\t<modelVersion>4.0.0</modelVersion>\n\t<groupId>${groupID}.${1}</groupId>\n\t<artifactId>${1}</artifactId>\n\t<name>\${artifactId}</name>\n\t<version>${version}</version>\n</project>"
clear
mkdir -p ${projectName}/src/{main/{java,resources,filters,assembly,config,webapp},test/{java,resources,filters},site}
touch ${projectName}/{LICENSE,NOTICE,README}.txt
touch ${projectName}/pom.xml
echo -e ${pomFill} > ${projectName}/pom.xml
tree ${projectName}
exit 0
首先,我想说“是的”,我知道有工具可以做到这一点,但由于工作中非常严格的限制,我必须使用这样的选项。其次,这是我遇到的两个问题。
“mkdir”行:Windows 有没有办法像 Linux 一样做到这一点?
我在其中创建 pom 文件的“回显”行:Windows 能否回显换行符和制表符,并将其重定向到外部文件中,就像我在 Bash 脚本中所做的那样?
就像我说的,我知道还有其他方法可以做到这一点,但是那些力量迫使我走上了这条路。无论如何,感谢所有花时间阅读的人。
祝你有美好的一天 :-)
更新:我意识到 Windows 确实有“echo”和“mkdir”,但我需要能够以非常特定的方式使用它们,就像我在我的 Linux 脚本中使用它们一样。具体来说,我想创建与我在 Linux 脚本中完全相同的目录,并且我需要将换行符 '\n' 或 '\r' 和制表符 '\t' 回显到外部文件中。
更新 2:我无法安装任何新软件/实用程序/等。到我的工作站上。我必须只使用那里的东西。