每个人都听说过“在那里或正方形”这句话。所以我想是时候对它进行挑战了。
您将以一个完整的绝对目录地址作为文本,通过STDIN或同等方式输入。
如果目录地址存在且有效,则程序将移动到计算机上的该文件夹。否则,它将通过STDOUT输出或等效于以下方格:
+-+
| |
+-+这是密码-高尔夫,所以最短的答案以字节为单位获胜。
发布于 2017-01-22 20:43:54
@if not "%1"=="" move %0 %1\>nul 2>nul&&%1\%~nx0||(echo +-+&echo ^| ^|&echo +-+)如果您在批处理文件运行时移动它,Batch不喜欢它,因此通过调用%1\%~nx0 (这是批处理文件的新名称),批处理停止寻找旧批处理文件。
发布于 2017-01-22 20:27:25
from shutil import*
try:move('f',input())
except:print("+-+\n| |\n+-+")它必须在一个名为f的文件中
相当简单。它试图将自己移动到STDIN上给它的任何目录,如果发生错误,它会打印该框。
发布于 2017-01-24 10:43:24
#include<dirent.h> g(char *f,char *z){DIR* d=opendir(z);if(d){strcat(z,f);rename(f,z);}else{puts("+-+");puts("| |");puts("+-+");}}非高尔夫版本:
#include<dirent.h>
g(char *f,char *z)
{
DIR* d=opendir(z);
if(d)
{
strcat(z,f);
rename(f,z);
}
else
{
puts("+-+");
puts("| |");
puts("+-+");
}
}f接受文件名,z接受目录名。目标字符串是z和f的连接。rename()用于将文件移动到新位置。
main()应该是这样的:
int main(int argc, char *argv[])
{
g(argv[0]+2,argv[1]); // 1st arg is the Destination string
return 0;
},一定会被缩短!
https://codegolf.stackexchange.com/questions/107721
复制相似问题